72 lines
2.4 KiB
JavaScript
72 lines
2.4 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 {
|
|
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');
|
|
});
|