projet-clicodrome/js/alerte.js
2024-12-10 15:04:56 +01:00

52 lines
1.5 KiB
JavaScript

// prévention de l'empilement d'alertes, qui entrainerait la suppression de tous les messages sauf le dernier
// Pour cela, on utilise une file et une fonction asynchrone qui boucle et vide la file alerte par alerte
let file_alertes = []
function ouvrirAlerte(message){
file_alertes.push(message)
// si c'est la seule alerte en attente, on l'affiche
if(file_alertes.length == 1 ) {
afficherAlerte(file_alertes[0])
}
// sinon, elle sera automatiquement affichée lors de la fermeture de l'alerte juste avant dans la file
}
// Fonction pour afficher une alerte mais plus jolie que celle par défaut
function afficherAlerte(message) {
// on signale une alerte en train d'être visionnée
flag = true
// on prend les elements
let modal = document.getElementById('alerte_jolie');
var messageElement = document.getElementById('message_alerte_jolie');
// Mettre le message
messageElement.textContent = message;
// et on affiche en changeant la propriété css
modal.style.display = "block";
}
// Fonction pour fermer l'alerte
function fermerAlerte() {
var modal = document.getElementById('alerte_jolie');
// et on cache en changeant la propriété css
modal.style.display = "none";
// enlève notre élément de la file
file_alertes.shift()
// affiche récursivement les autres alertes en attentes
if(file_alertes.length > 0){
afficherAlerte(file_alertes[0])
}
}