diff options
Diffstat (limited to 'Static/Js')
| -rw-r--r-- | Static/Js/index.js | 12 | ||||
| -rw-r--r-- | Static/Js/main.js | 26 | ||||
| -rw-r--r-- | Static/Js/message.js | 15 | ||||
| -rw-r--r-- | Static/Js/register.js | 43 | ||||
| -rw-r--r-- | Static/Js/userinfo.js | 37 |
5 files changed, 100 insertions, 33 deletions
diff --git a/Static/Js/index.js b/Static/Js/index.js index a9889b2..31ee34f 100644 --- a/Static/Js/index.js +++ b/Static/Js/index.js @@ -1,9 +1,13 @@ +// ############################################################################ +// # # +// # Description: JS uniquement utile dans l'index # +// # # +// ############################################################################ + // **************************************************************************** -// INDEX +// SLIDESHOW // **************************************************************************** - -// Slideshow // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters function slideshow_start(slideNumber = 1) { let images = [ @@ -15,8 +19,8 @@ function slideshow_start(slideNumber = 1) { setInterval(() => { // Changement de l'image de fond de de la div document.getElementById("secSlides").style.backgroundImage = `url("${images[slideNumber]}")`; - // Untoggle les précedents // Utilisation de ternary, utilisation: condition ? Sivrai : Sifaux + // Untoggle les précedents document.getElementById(`slide_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("show_block"); document.getElementById(`slideDot_${slideNumber !== 0 ? slideNumber - 1 : images.length - 1}`).classList.toggle("slideDotSelected"); // Toggle le nouveau texte & selecteur diff --git a/Static/Js/main.js b/Static/Js/main.js index 7f3935c..3a6c3e5 100644 --- a/Static/Js/main.js +++ b/Static/Js/main.js @@ -1,17 +1,25 @@ -// **************************************************************************** -// Main -// **************************************************************************** - + +// ############################################################################ +// # # +// # Description: JS utile un peu de partout # +// # # +// ############################################################################ // Site web utilisés pour JS: // https://www.w3schools.com/js/default.asp // https://stackoverflow.com/ -// Changement de langue + +// **************************************************************************** +// CHANGEMENT DE LANGUE +// **************************************************************************** document.getElementById("navSelLang").addEventListener("change", () => { document.getElementById("navFormLang").submit(); }); -// TODO: A commenter + +// **************************************************************************** +// TOGGLE UNE CLASSE SUR UN ELEMENT PARMIS PLUSIEURS IDENTIQUES +// **************************************************************************** function show(parentId, element, id, className) { let elements = document.getElementById(parentId).getElementsByTagName(element); elements[id].classList.add(className); @@ -22,8 +30,12 @@ function show(parentId, element, id, className) { } } + +// **************************************************************************** +// AFFICHER LA BAR DE NAVIGATION +// **************************************************************************** function showNavButtons() { document.getElementsByTagName("nav")[0].classList.toggle("showNav") // first-child à chaque fois document.getElementsByTagName("header")[0].getElementsByTagName("a")[0].getElementsByTagName("i")[0].classList.toggle("navLinkClicked") -}
\ No newline at end of file +} diff --git a/Static/Js/message.js b/Static/Js/message.js index 97f39ef..06ba511 100644 --- a/Static/Js/message.js +++ b/Static/Js/message.js @@ -1,14 +1,21 @@ +// ############################################################################ +// # # +// # Description: JS utile sur la page des messages # +// # # +// ############################################################################ + + // **************************************************************************** -// MESSAGES +// REDIRECTION // **************************************************************************** - -// Redirection function redirect(page) { window.location.href = `/${page}.php`; } -// Timer pour message +// **************************************************************************** +// DECLENCHEMENT DU TIMER POUR UNE REDIRECTION +// **************************************************************************** function start_timer(page) { let seconds = 2; let text = document.getElementById("redirect").innerHTML; diff --git a/Static/Js/register.js b/Static/Js/register.js new file mode 100644 index 0000000..c751b77 --- /dev/null +++ b/Static/Js/register.js @@ -0,0 +1,43 @@ + +// ############################################################################ +// # # +// # Description: JS de la partie inscription # +// # # +// ############################################################################ + +// Regex pour vérifier la validité du mdp +const numb = new RegExp(/[0-9]/) +const upper = new RegExp(/[A-Z]/) +const special = new RegExp(/[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~µ°€£]/) + +function is_valid(condition, element) { + // Si la regex est bonne on selectionne la class css pour l'afficher + if (condition) { + document.getElementById(element).classList.remove("invalid"); + document.getElementById(element).classList.add("valid"); + return true; + } else { + document.getElementById(element).classList.remove("valid"); + document.getElementById(element).classList.add("invalid"); + return false; + } +} + +function check_pass() { + // On récupère les éléments dans la page et on test nos regex sur le mdp + let pass = document.getElementById("password").value; + let submitButton = document.getElementById("submit"); + let validNumb = is_valid(numb.test(pass), "passNumb"); + let validUpper = is_valid(upper.test(pass), "passUpper"); + let validSpecial = is_valid(special.test(pass), "passSpecial"); + let validLength = is_valid((pass.length >= 8), "passLength"); + + // Si tout est validé on active le button sumbit + if (validLength && validUpper && validNumb && validSpecial) { + submitButton.classList.remove("deactivate"); + submitButton.disabled = false; + } else { + submitButton.classList.add("deactivate"); + submitButton.disabled = true; + } +}
\ No newline at end of file diff --git a/Static/Js/userinfo.js b/Static/Js/userinfo.js index 29c92d0..8f1e239 100644 --- a/Static/Js/userinfo.js +++ b/Static/Js/userinfo.js @@ -1,7 +1,9 @@ -// **************************************************************************** -// USERINFO -// **************************************************************************** +// ############################################################################ +// # # +// # Description: JS utile sur la page user infos # +// # # +// ############################################################################ // Mes sources pour créer cette partie: // https://stackoverflow.com/questions/1085801/get-selected-value-in-dropdown-list-using-javascript // https://stackoverflow.com/questions/47951287/dynamically-add-li-to-ul-javascript @@ -13,21 +15,17 @@ // On passe par du JSON pour passer la liste des emplois du pro // **************************************************************************** -// GLOBAL -// **************************************************************************** -var payload = []; - -// **************************************************************************** -// FONCTIONS PRINCIPALES +// GESTION AJOUT/SUPPRESSION D'UN EMPLOI ET PASSAGE A L'INPUT +// DES VALEURS SELECTIONNEES // **************************************************************************** +var payload = []; -// TODO: Revoir les commentaires // Initiation function init() { // Récupération des emplois déja présent let jobs = document.getElementsByClassName("jobsListElem"); - // Pour chaque emploi disponible + // Pour chaque emploi disponible récupération de sa valeur for (i = 0; i < jobs.length; i ++) { if (jobs[i].getAttribute("data-value") !== "") { payload.push(jobs[i].getAttribute("data-value")); @@ -42,28 +40,29 @@ function init() { // Ajout d'un emploi function add() { - // Récupération du nom du choix dans le "select" des emplois + // Récupération du nom et de la valeur du choix dans le "select" des emplois let jobName = document.getElementById("jobsSel").options[jobsSel.selectedIndex].text; let jobValue = document.getElementById("jobsSel").options[jobsSel.selectedIndex].value; - // Si l'emploi n'est pas deja dans "payload" - // et si il fait bien partie du dictionnaire de tous les emplois + // Si l'emploi n'est pas deja dans "payload" et que sa valeur est non nul (choix par défaut) if (!payload.includes(jobValue) && jobValue !== "") { // Ajout à payload payload.push(jobValue); - // Création, configuration et ajout du nouveau "li" + // Création, configuration et ajout d'une nouvelle div pour l'emploi choisi + // Création du "i" let i = document.createElement("i"); i.className = "fas fa-ban"; - + // Création, configuration de la div et ajout du "i" let div = document.createElement("div"); div.className = "jobsListElem"; div.dataset.value = jobValue; div.onclick = (ptrEvent) => {remove(ptrEvent)}; div.appendChild(document.createTextNode(jobName)); div.appendChild(i); - + // Enfin, ajout au document document.getElementById("jobsListGrid").appendChild(div); + // Transformation de la liste des emplois choisis en JSON // et inscription de ce dernier dans la "value" de l'input "jobs". document.getElementById("jobs").value = JSON.stringify(payload); @@ -73,9 +72,11 @@ function add() { function remove(ptrEvent) { // Suppression de l'emploi dans "payload" payload.splice(payload.indexOf(ptrEvent.srcElement.getAttribute("data-value")), 1); + // Suppression du "div" de l'emploi document.getElementById("jobsListGrid").removeChild(ptrEvent.srcElement); + // Transformation de la liste des emplois choisis en JSON // et inscription de ce dernier dans la "value" de l'input "jobs". document.getElementById("jobs").value = JSON.stringify(payload); -}
\ No newline at end of file +} |
