// ############################################################################ // # # // # Description: JS utile un peu de partout # // # # // ############################################################################ // Site web utilisés pour JS: // https://www.w3schools.com/js/default.asp // https://stackoverflow.com/ // **************************************************************************** // TOGGLE UNE CLASSE SUR UN ELEMENT PARMIS PLUSIEURS IDENTIQUES // **************************************************************************** function show(parentId, id, className) { // Récupération des tags dans l'élément parent (souvent table dans main) let elements = document.getElementById(parentId).getElementsByTagName("section"); // Rajout de la classe pour l'élément avec l'id donné elements[id].classList.add(className); // Suppression de cette même classe pour les autres tags for (i = 0; i < elements.length; i++) { if (elements[i].id !== id) { elements[i].classList.remove(className); } } } // On essaie de récupérer les tags main des pages admin & mes missions let mainAdmin = document.getElementById("mainAdmin"); let mainMyMission = document.getElementById("mainMyMission"); // Si on est dans l'admin if (mainAdmin) { // On affiche la première section show("mainAdmin", "secAdminJobs", "show_flex"); // Boutton admin emplois document.getElementById("btnAdminJobs").addEventListener("click", () => { show("mainAdmin", "secAdminJobs", "show_flex"); }); // Boutton admin utilisateurs document.getElementById("btnAdminUsers").addEventListener("click", () => { show("mainAdmin", "secAdminUsers", "show_flex"); }); // Boutton admin missions document.getElementById("btnAdminMissions").addEventListener("click", () => { show("mainAdmin", "secAdminMissions", "show_flex"); }); } // Si on est dans mes missions if (mainMyMission) { // On affiche la première section show("mainMyMission", "secPending", "show_block"); // Boutton mission en attente document.getElementById("btnMyMissionPending").addEventListener("click", () => { show("mainMyMission", "secPending", "show_block"); }); // Boutton mission en cours document.getElementById("btnMyMissionOngoing").addEventListener("click", () => { show("mainMyMission", "secOngoing", "show_block"); }); // Boutton mission terminée document.getElementById("btnMyMissionCompleted").addEventListener("click", () => { show("mainMyMission", "secCompleted", "show_block"); }); } // **************************************************************************** // REDIRECTION // **************************************************************************** function redirect(page) { window.location.href = `/${page}.php`; } // On essaie de récupérer la division pour rediriger sans timer let rNoTimer = document.getElementById("rNoTimer"); // Si elle existe on redirige vers la page indiquée if (rNoTimer) { redirect(rNoTimer.getAttribute("data-page")); } // **************************************************************************** // CHANGEMENT DE LANGUE // **************************************************************************** // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener document.getElementById("navSelLang").addEventListener("change", () => { document.getElementById("navFormLang").submit(); }); // **************************************************************************** // AFFICHER LA BAR DE NAVIGATION // **************************************************************************** document.getElementById("navButton").addEventListener("click", () => { document.getElementsByTagName("nav")[0].classList.toggle("showNav") // first-child à chaque fois document.getElementsByTagName("header")[0].getElementsByTagName("a")[0].getElementsByTagName("i")[0].classList.toggle("navLinkClicked") });