diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6be137d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +.history/ \ No newline at end of file diff --git a/index.php b/index.php index d7800fe..38fdeff 100644 --- a/index.php +++ b/index.php @@ -82,10 +82,10 @@
- +
- +
diff --git a/src/formValidation.js b/src/formValidation.js index 177811f..d793e48 100644 --- a/src/formValidation.js +++ b/src/formValidation.js @@ -1,31 +1,43 @@ -var validExpeMail = false -var validExpeLoc = false //turned to true in geocoder.js -var validDestMail = false -var validDestLoc = false //turned to true in geocoder.js +var validExpeMail = false; +var validExpeLoc = false; //turned to true in geocoder.js +var validDestMail = false; +var validDestLoc = false; //turned to true in geocoder.js -function validateEmail(email) { //from https://stackoverflow.com/questions/46155/how-to-validate-an-email-address-in-javascript - const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - return re.test(String(email).toLowerCase()); +function validateEmail(email) { + //from https://stackoverflow.com/questions/46155/how-to-validate-an-email-address-in-javascript + const re = + /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return re.test(String(email).toLowerCase()); } -$("#expeMail").change(function() { - validExpeMail = validateEmail($("#expeMail").val()) - checkFormValid() -}) +$("#expeMail").change(function () { + validExpeMail = validateEmail($("#expeMail").val()); + checkFormValid(); +}); -$("#destMail").change(function() { - validDestMail = validateEmail($("#destMail").val()) - checkFormValid() -}) +$("#destMail").change(function () { + validDestMail = validateEmail($("#destMail").val()); + checkFormValid(); +}); -document.querySelector('.custom-file-input').addEventListener('change',function(e){ - var fileName = document.getElementById("attachmentPlane").files[0].name; - var nextSibling = e.target.nextElementSibling - nextSibling.innerText = fileName -}) +document + .querySelector(".custom-file-input") + .addEventListener("change", function (e) { + const file = e.target.files[0]; + const fileName = file.name; + var nextSibling = e.target.nextElementSibling; + nextSibling.innerText = fileName; -function checkFormValid(){ - if(validExpeMail && validExpeLoc && validDestMail && validDestLoc){ - $('#sendNewPlane').prop("disabled", false) - } + const filesize = (file.size / 1024 / 1024).toFixed(4); // MB + if (filesize >= 2.2) { + e.target.classList.add("is-invalid"); + } else { + e.target.classList.remove("is-invalid"); + } + }); + +function checkFormValid() { + if (validExpeMail && validExpeLoc && validDestMail && validDestLoc) { + $("#sendNewPlane").prop("disabled", false); + } } diff --git a/src/translation.js b/src/translation.js index 524e3a5..baaa6e3 100644 --- a/src/translation.js +++ b/src/translation.js @@ -1,186 +1,193 @@ // Default lang -var lang = 'en' +var lang = "en"; // Lang by session -var langSession = sessionStorage.getItem('lang'); +var langSession = sessionStorage.getItem("lang"); // Lang by navigator config var userLang = navigator.userLanguage || navigator.language; if (langSession) { - lang = langSession.substring(0,2) + lang = langSession.substring(0, 2); } else if (userLang) { - lang = userLang.substring(0,2) + lang = userLang.substring(0, 2); } //loading the lang.json file -$(document).ready(function(){ - translateUI(lang) - $.getJSON("lang/lang.json", function(data){ - //creating dropdown list of languages in navbar - for (var key in data){ - $("#langChoices").append( ''+data[key]+'' ) - $("#selectDestLang").append( '' ) - } - //setting the user lang - if(data[lang]){ - //$("#navbarDropdownLang").html(data[lang]) - translateUI(lang) - } - //or english if not in list - else{ - //$("#navbarDropdownLang").html("English") - translateUI('en') - } - $(".langSelect").on('click',function(e){ - lang = e.currentTarget.attributes[1].value - sessionStorage.setItem('lang', lang); - translateUI(lang) - //$("#navbarDropdownLang").html($(this).html()) - }) - }).fail(function(error){ - console.log(error); - }); +$(document).ready(function () { + translateUI(lang); + $.getJSON("lang/lang.json", function (data) { + //creating dropdown list of languages in navbar + for (var key in data) { + $("#langChoices").append( + '' + + data[key] + + "" + ); + $("#selectDestLang").append( + '" + ); + } + //setting the user lang + if (data[lang]) { + //$("#navbarDropdownLang").html(data[lang]) + translateUI(lang); + } + //or english if not in list + else { + //$("#navbarDropdownLang").html("English") + translateUI("en"); + } + $(".langSelect").on("click", function (e) { + lang = e.currentTarget.attributes[1].value; + sessionStorage.setItem("lang", lang); + translateUI(lang); + //$("#navbarDropdownLang").html($(this).html()) + }); + }).fail(function (error) { + console.log(error); + }); }); -var dictionnary = [] +var dictionnary = []; -function translateUI(l){ - $.getJSON("lang/"+l+"", function(s){ - dictionnary = s - //if arabic : display left to right (ltr) + troubleshooting a lot of individual elements - if (lang == "ar"){ - //navbar - $("nav").css('direction','rtl') - $(".nav-menus").removeClass('mr-auto') - $(".nav-button").addClass('mr-auto') - //form - // $(".ql-container").css('direction','rtl') - // $(".ql-container").css('float','right') - // $(".ql-editor").css('float','right') - // $(".ql-editor p").css('float','right') - $(".modal-content").css('direction','rtl') - $(".bold").css('float','right') - $("#public").css('margin-left','5px') - $("#prive").css('margin-left','5px') - $("#newPlaneModalAnonyme").css('margin-right','25px') - $("#newPlaneModalCancel").css('margin-left','8px') - $("#closeModal").css('margin-left','0px') - $("#closeModal").css('padding-left','0px') - //anthology - $("#anthology").css('direction','rtl') - $("#anthologyDisclaimer").css('float','right') - - } - else{ - //navbar - $("nav").css('direction','ltr') - $(".nav-menus").addClass('mr-auto') - $(".nav-button").removeClass('mr-auto') - //form - // $(".ql-container").css('direction','ltr') - // $(".ql-container").css('float','left') - // $(".ql-editor").css('float','left') - // $(".ql-editor p").css('float','none') - $(".modal-content").css('direction','ltr') - $(".bold").css('float','left') - $("#public").css('margin-left','0px') - $("#prive").css('margin-left','0px') - $("#newPlaneModalAnonyme").css('margin-right','0px') - $("#newPlaneModalCancel").css('margin-left','0px') - //anthology - $("#anthology").css('direction','ltr') - $("#anthologyDisclaimer").css('float','left') - } - - //changing all strings - //main page - $('head title', window.parent.document).text(s.avionpoeme); - $("#navTitle").html(s.avionpoeme) - $("#buttonAnthology").html(s.anthologie) - $("#buttonAbout").html(s.apropos) - if (typeof nbPlane !== 'undefined') { - $("#buttonNewPlane").val(s.lancer_avion+" "+nbPlane+"/100") - } else { - $("#buttonNewPlane").on('click', () => { - window.location.replace("/"); - }) - } - //new plane form - $("#newPlaneModalTitle").html(s.lancer_avion) - $("#newPlaneModalMessage").html(s.message) - $("#newPlaneModalPrive").html(s.prive) - $("#newPlaneModalPublic").html(s.public) - $("#labelAttachment").html(s.PJ_Ajouter) - console.log(s.PJ_Parcourir) - $("#attachmentPlaneLabel").attr('data-after', s.PJ_Parcourir) - $("#flightTime").html(s.temps_de_vol) - $("#newPlaneModalRandom").html(s.aléatoire) - $("#newPlaneModal3j").html(s.trois_jours) - $("#newPlaneModal7j").html(s.sept_jours) - $("#newPlaneModal30j").html(s.trente_jours) - $("#newPlaneModal365j").html(s.unan_jours) - $("#newPlaneModalExpediteur").html(s.expediteur) - $("#newPlaneModalDestinataire").html(s.destinataire) - $("#newPlaneModalAnonyme").html(s.anonyme) - $("#newPlaneModalCancel").html(s.annuler) - $("#sendNewPlane").html(s.lancer) - $("#destLang").html(s.langue_destinataire) - $("#expeMail").attr("placeholder", s.expeMail_placeholder) - $("#expeGeocoderPhoton").attr("placeholder", s.expeLoc_placeholder) - $("#destMail").attr("placeholder", s.destMail_placeholder) - $("#destGeocoderPhoton").attr("placeholder", s.destLoc_placeholder) - $('#anonymeTooltip').attr("title", s.anonyme_tooltip).tooltip("_fixTitle"); - $('#publicTooltip').attr("title", s.public_tooltip).tooltip("_fixTitle"); - - $('#selectDestLang option[value="'+lang+'"]').prop('selected', true); //selecting by default recipient language same as interface - //Anthology - displayAnthology() - $("#anthologyTitle").html(s.anthologie) - $("#anthologyDisclaimer").html(s.suppr_message_public) - $("#closeAnthologyAbout").html(s.retour_carte) - - //About - $("#aboutTitle").html(s.apropos) - $("#librairies").html(s.librairies) - $("#mapSources").html(s.source_carte) - $("#mapBackground").html(s.map_background) - $("#clouds").html(s.clouds) - $.getJSON("lang/about.json", function(e){ - if(lang !== 'en' && lang !== 'fr' && lang !== 'de'){ - $("#aboutText").html(e[0].en) - } - else{ - $("#aboutText").html(e[0][lang]) - } - $("#donationText").html(s.AvionPoeme_free_independent) - $("#donationButtonText").html(s.Soutenez_avionpoeme) - $("#donationButtonText").addClass(lang) - }) - - //plane limit tooltip - if (typeof nbPlane !== 'undefined') { - if (nbPlane > 99){ - $("#planeLimitTooltip").attr("title", s.AvionPoeme_epuise).tooltip("_fixTitle"); - } - else{ - var remainingPlanes = 100 - nbPlane; - s.NB_AvionPoeme_restant = s.NB_AvionPoeme_restant.replace('$NB_avion_poeme',remainingPlanes) - $("#planeLimitTooltip").attr("title", s.NB_AvionPoeme_restant).tooltip("_fixTitle"); - } - } - - }) - .always(function(callback) { - //console.log( callback ); - }); +function translateUI(l) { + $.getJSON("lang/" + l + "", function (s) { + dictionnary = s; + //if arabic : display left to right (ltr) + troubleshooting a lot of individual elements + if (lang == "ar") { + //navbar + $("nav").css("direction", "rtl"); + $(".nav-menus").removeClass("mr-auto"); + $(".nav-button").addClass("mr-auto"); + //form + // $(".ql-container").css('direction','rtl') + // $(".ql-container").css('float','right') + // $(".ql-editor").css('float','right') + // $(".ql-editor p").css('float','right') + $(".modal-content").css("direction", "rtl"); + $(".bold").css("float", "right"); + $("#public").css("margin-left", "5px"); + $("#prive").css("margin-left", "5px"); + $("#newPlaneModalAnonyme").css("margin-right", "25px"); + $("#newPlaneModalCancel").css("margin-left", "8px"); + $("#closeModal").css("margin-left", "0px"); + $("#closeModal").css("padding-left", "0px"); + //anthology + $("#anthology").css("direction", "rtl"); + $("#anthologyDisclaimer").css("float", "right"); + } else { + //navbar + $("nav").css("direction", "ltr"); + $(".nav-menus").addClass("mr-auto"); + $(".nav-button").removeClass("mr-auto"); + //form + // $(".ql-container").css('direction','ltr') + // $(".ql-container").css('float','left') + // $(".ql-editor").css('float','left') + // $(".ql-editor p").css('float','none') + $(".modal-content").css("direction", "ltr"); + $(".bold").css("float", "left"); + $("#public").css("margin-left", "0px"); + $("#prive").css("margin-left", "0px"); + $("#newPlaneModalAnonyme").css("margin-right", "0px"); + $("#newPlaneModalCancel").css("margin-left", "0px"); + //anthology + $("#anthology").css("direction", "ltr"); + $("#anthologyDisclaimer").css("float", "left"); + } + + //changing all strings + //main page + $("head title", window.parent.document).text(s.avionpoeme); + $("#navTitle").html(s.avionpoeme); + $("#buttonAnthology").html(s.anthologie); + $("#buttonAbout").html(s.apropos); + if (typeof nbPlane !== "undefined") { + $("#buttonNewPlane").val(s.lancer_avion + " " + nbPlane + "/100"); + } else { + $("#buttonNewPlane").on("click", () => { + window.location.replace("/"); + }); + } + //new plane form + $("#newPlaneModalTitle").html(s.lancer_avion); + $("#newPlaneModalMessage").html(s.message); + $("#newPlaneModalPrive").html(s.prive); + $("#newPlaneModalPublic").html(s.public); + $("#labelAttachment").html(s.PJ_Ajouter); + console.log(s); + $("#attachmentPlaneLabel").attr("data-after", s.PJ_Parcourir); + $("#flightTime").html(s.temps_de_vol); + $("#newPlaneModalRandom").html(s.aléatoire); + $("#newPlaneModal3j").html(s.trois_jours); + $("#newPlaneModal7j").html(s.sept_jours); + $("#newPlaneModal30j").html(s.trente_jours); + $("#newPlaneModal365j").html(s.unan_jours); + $("#newPlaneModalExpediteur").html(s.expediteur); + $("#newPlaneModalDestinataire").html(s.destinataire); + $("#newPlaneModalAnonyme").html(s.anonyme); + $("#newPlaneModalCancel").html(s.annuler); + $("#sendNewPlane").html(s.lancer); + $("#destLang").html(s.langue_destinataire); + $("#expeMail").attr("placeholder", s.expeMail_placeholder); + $("#expeGeocoderPhoton").attr("placeholder", s.expeLoc_placeholder); + $("#destMail").attr("placeholder", s.destMail_placeholder); + $("#destGeocoderPhoton").attr("placeholder", s.destLoc_placeholder); + $("#anonymeTooltip").attr("title", s.anonyme_tooltip).tooltip("_fixTitle"); + $("#publicTooltip").attr("title", s.public_tooltip).tooltip("_fixTitle"); + + $('#selectDestLang option[value="' + lang + '"]').prop("selected", true); //selecting by default recipient language same as interface + //Anthology + displayAnthology(); + $("#anthologyTitle").html(s.anthologie); + $("#anthologyDisclaimer").html(s.suppr_message_public); + $("#closeAnthologyAbout").html(s.retour_carte); + + //About + $("#aboutTitle").html(s.apropos); + $("#librairies").html(s.librairies); + $("#mapSources").html(s.source_carte); + $("#mapBackground").html(s.map_background); + $("#clouds").html(s.clouds); + $.getJSON("lang/about.json", function (e) { + if (lang !== "en" && lang !== "fr" && lang !== "de") { + $("#aboutText").html(e[0].en); + } else { + $("#aboutText").html(e[0][lang]); + } + $("#donationText").html(s.AvionPoeme_free_independent); + $("#donationButtonText").html(s.Soutenez_avionpoeme); + $("#donationButtonText").addClass(lang); + }); + + //plane limit tooltip + if (typeof nbPlane !== "undefined") { + if (nbPlane > 99) { + $("#planeLimitTooltip") + .attr("title", s.AvionPoeme_epuise) + .tooltip("_fixTitle"); + } else { + var remainingPlanes = 100 - nbPlane; + s.NB_AvionPoeme_restant = s.NB_AvionPoeme_restant.replace( + "$NB_avion_poeme", + remainingPlanes + ); + $("#planeLimitTooltip") + .attr("title", s.NB_AvionPoeme_restant) + .tooltip("_fixTitle"); + } + } + }).always(function (callback) { + //console.log( callback ); + }); } //hovering lang icon -$( "#navbarDropdownLang" ).mouseenter(function() { - $("#langIcon").attr("src","src/img/lang-hover.png"); +$("#navbarDropdownLang").mouseenter(function () { + $("#langIcon").attr("src", "src/img/lang-hover.png"); }); -$( "#navbarDropdownLang" ).mouseleave(function() { - $("#langIcon").attr("src","src/img/lang.png"); +$("#navbarDropdownLang").mouseleave(function () { + $("#langIcon").attr("src", "src/img/lang.png"); }); - -