personnal/etv2/public/js/auth.js

73 lines
2.5 KiB
JavaScript

// É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 += `
<tr>
<td>${admin.matricule}</td>
<td>${admin.nom}</td>
<td>${admin.prenom}</td>
<td>${admin.mail}</td>
</tr>
`
})
instance.open();
}
} catch (error) {
console.error("Erreur lors de la récupération des informations du matricule:", error);
}
})();
});
updateSubmitButtonState('authForm');
});