52 lines
1.5 KiB
JavaScript
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])
|
|
}
|
|
|
|
}
|