DTux
/
dtux__avion-poeme
Archived
1
0
Fork 0
This repository has been archived on 2023-11-30. You can view files and clone it, but cannot push or open issues or pull requests.
dtux__avion-poeme/src/newPlane.js

209 lines
6.4 KiB
JavaScript

// init text editor in modal
var quill = new Quill('#messageTextArea', {
modules: {
toolbar: [
[{ 'size': ['small', false, 'large'] }],
[{ 'font': [] }],
['bold', 'italic', 'underline','strike'],
[{ 'color': [] }],
]
},
placeholder: '',
theme: 'snow' // or 'bubble',
});
// get random number between interval
function randomIntFromInterval(min, max) { // min and max included
return Math.floor(Math.random() * (max - min + 1) + min);
}
// get random color
function getRandomColor() {
var colors = ['66FF00','FF5555','FFE419','2A7FFF','BC5FD3','FF6600','ECECEC']
var color = colors[Math.floor(Math.random() * colors.length)];
return color
}
//init tooltips in form
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
//closing navbar antholoy about on open
$('#newPlaneModal').on('shown.bs.modal', function (e) {
$('.navbar-collapse').collapse('hide');
$('#anthology').css('opacity','0')
$('#anthology').css('visibility','hidden')
$('#backToMap').css('opacity','0')
$('#backToMap').css('visibility','hidden')
$('#about').css('visibility','hidden');
$('#about').css('opacity','0')
anthologyOpen = 0
aboutOpen = 0
})
$("#sendNewPlane").on('click',function(){
//hiding modal
$("#newPlaneModal").modal('hide')
var deliveryMethod = $("#selectTime").val()
var time; //time to delivery in hours
if(deliveryMethod == '3days'){
time = 24*3.14
}
else if(deliveryMethod == '7days'){
time = 24*7
}
else if(deliveryMethod == '30days'){
time = 24*30
}
else if(deliveryMethod == '365days'){
time = 24*365
}
else if(deliveryMethod == 'random'){
var speed = randomIntFromInterval(5.05, 25.82)
var line = turf.lineString([expeLoc.center,destLoc.center]) //create line between start and end
var length = turf.length(line) //get length in Km
var additionalTime = length/speed;
time = 37.68 + additionalTime //minimum 37.68 hours + additional time based on random speed
}
//get the local time with TZ for starting point
$.getJSON('https://secure.geonames.org/timezoneJSON?lat='+expeLoc.center[1]+'&lng='+expeLoc.center[0]+'&username=avionpoeme',function(startTime){
var expeTimezone = startTime.timezoneId;
var sentDate = moment.tz(new Date(), expeTimezone).unix();
//get the local time with TZ for end point
$.getJSON('https://secure.geonames.org/timezoneJSON?lat='+destLoc.center[1]+'&lng='+destLoc.center[0]+'&username=avionpoeme',function(endTime){
var destTimezone = endTime.timezoneId;
var endDate = moment.tz(new Date(), destTimezone)
var deliveryDate = endDate.add(time, 'hours').unix(); // adding hours
//storing the endDate in GMT+0 in seconds for the query
var deliverySecondsServer = moment.tz(new Date(), "Europe/Berlin").add(time, 'hours').unix()
var publicMessage = $("#public").prop("checked")
var expeKnown = $("#expeKnown").prop("checked")
if(expeKnown == true){
expeKnown = false
}
else{
expeKnown = true
}
var message = quill.root.innerHTML
var randomColor = getRandomColor()
var formData = new FormData()
var attachment = $("#attachmentPlane").prop('files')[0];
formData.append('file', attachment);
formData.append('message', encodeURIComponent(message));
formData.append('expeMail', $("#expeMail").val());
formData.append('expeKnown', expeKnown);
formData.append('expeLang', lang);
formData.append('destLang', $("#selectDestLang").val());
formData.append('startLat', expeLoc.center[1]);
formData.append('startLon', expeLoc.center[0]);
formData.append('startName', expeLoc.name);
formData.append('startTime', sentDate);
formData.append('startTZ', expeTimezone);
formData.append('destMail', $("#destMail").val());
formData.append('destLat', destLoc.center[1]);
formData.append('destLon', destLoc.center[0]);
formData.append('destName', destLoc.name);
formData.append('public', publicMessage, );
formData.append('color', randomColor);
formData.append('deliveryTime', deliveryDate);
formData.append('deliveryTZ', destTimezone);
formData.append('deliveryTimeServer', deliverySecondsServer);
formData.append('deliveryMethod', $("#selectTime").val());
var data = {
'message':encodeURIComponent(message),
'expeMail':$("#expeMail").val(),
'expeKnown':expeKnown,
'expeLang':lang,
'destLang':$("#selectDestLang").val(),
'startLat':expeLoc.center[1],
'startLon':expeLoc.center[0],
'startName':expeLoc.name,
'startTime':sentDate,
'startTZ':expeTimezone,
'destMail':$("#destMail").val(),
'destLat':destLoc.center[1],
'destLon':destLoc.center[0],
'destName':destLoc.name,
'public':publicMessage,
'color':randomColor,
'deliveryTime':deliveryDate,
'deliveryTZ':destTimezone,
'deliveryTimeServer':deliverySecondsServer,
'deliveryMethod':$("#selectTime").val(),
}
$.ajax({
url: 'avionpoeme.php',
data: formData,
processData: false,
contentType: false,
cache : false,
type: 'POST',
success: function(result){
result = result.replace(/'/g, '"');
result = $.parseJSON(result)
var planeId = Number(result.uid);
//selecting proper color for back
$("#back").attr("src","src/img/back-"+randomColor+".jpg");
// creating image for plane, need to link it to the inputs tog et entered values.
var message = quill.root.innerHTML
var canvas1 = document.getElementById("blankCanvas1"),
html = quill.root.innerHTML;
rasterizeHTML.drawHTML(html, canvas1,{zoom:0.7}).then(function success(renderResult) {
var canvas2 = document.getElementById("blankCanvas2");
var ctx = canvas2.getContext("2d");
ctx.fillStyle = "#"+data.color;
ctx.fillRect(0,0,400,400);
ctx.drawImage(canvas1, 0, 0,400,400)
ctx.fillStyle = "rgb(0,0,0)";
ctx.font = "9px Courier";
$("#front").attr('src',document.getElementById("blankCanvas2").toDataURL())
//display and animate plane
$("#canvas3d").css('display','block')
animePlane()
//moving plane at the end
setInterval(function(){
$("#canvas3d").css('transition','transform 2500ms ease-in-out')
$("#canvas3d").css('transform','translate(50vw, -150vh)')
},4400);
//reloading page (to change)
setInterval(function(){
window.location.href ='https://www.avion-poe.me/?avion='+planeId+'';
},5500);
})
}
});
})
});
})