// Événement lorsque le DOM est entièrement chargé document.addEventListener('DOMContentLoaded', function () { /* ---------- Init ------------ */ const modals = document.querySelectorAll('.modal'); M.Modal.init(modals); // Cache les liens de la navbar document.getElementById('navSelect').style.display = 'none'; /* ---------- EVENNEMENT ------------ */ // Ecoute de l'événement 'input' au champ matricule document.getElementById('matricule').addEventListener('input', function () { validateField('matricule', true); updateSubmitButtonState('authForm'); }); // Écoute de l'événement de soumission du formulaire document.getElementById('authForm').addEventListener('submit', function (event) { // Empêche le comportement par défaut du formulaire event.preventDefault(); const matricule = document.getElementById('matricule').value; // Récupération des informations du parcours (async () => { try { // Le loader est déjà géré dans fetchWithJson const data = await fetchWithJson(`/auth/verifyMatricule/${matricule}`, 'GET'); if (data.valid) { // Récupération du token et stockage dans le localStorage const token = data.token; localStorage.setItem('jwtToken', token); // Cache les liens de la navbar document.getElementById('navSelect').style.display = 'block'; // Redirige vers la page d'accueil window.location.replace('/'); } else { // Affiche un modal si le matricule est invalide const elem = document.getElementById('wrongMatriculeModal'); const instance = M.Modal.getInstance(elem); // Met à jour le matricule affiché dans le modal document.getElementById('displayedMatricule').innerText = matricule; const adminListElement = document.getElementById('adminList'); adminListElement.innerHTML = ""; data.admins.items.forEach(admin => { adminListElement.innerHTML += `