ajout de la modale de confirmation

This commit is contained in:
2026-08-06 20:25:43 +02:00
parent 057dc4a474
commit 1896e8876b
5 changed files with 124 additions and 1 deletions
@@ -0,0 +1,63 @@
class ConfirmDialog {
constructor() {
this.modalElement = document.getElementById("orfeo_generic_confirmation_modal");
this.modal = new bootstrap.Modal(this.modalElement);
this.title = this.modalElement.querySelector(".modal-title");
this.body = this.modalElement.querySelector(".modal-body");
this.ok = document.getElementById("confirmModalOk");
}
show(options = {}) {
this.title.textContent = options.title ?? "Confirmation";
this.body.innerHTML = options.message ?? "Êtes-vous sûr ?";
this.ok.textContent = options.confirmText ?? "Confirmer";
this.ok.className = "btn";
this.ok.classList.add(options.confirmClass ?? "btn-danger");
return new Promise(resolve => {
const confirm = () => {
cleanup();
this.modal.hide();
resolve(true);
};
const cancel = () => {
cleanup();
resolve(false);
};
const cleanup = () => {
this.ok.removeEventListener("click", confirm);
this.modalElement.removeEventListener("hidden.bs.modal", cancel);
};
this.ok.addEventListener("click", confirm, { once: true });
this.modalElement.addEventListener("hidden.bs.modal", cancel, { once: true });
this.modal.show();
});
}
}
const confirmDialog = new ConfirmDialog();
/* exemple d'utilisation
async function deletePressed(){
const confirmed = await confirmDialog.show({
title: "Suppression",
message: "Supprimer cet élément ?"
});
if (confirmed) {
// suppression, fetch ect...
}
}
*/
@@ -0,0 +1,26 @@
<div class="modal fade" id="orfeo_generic_confirmation_modal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Confirmation</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
Êtes-vous sûr ?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
Annuler
</button>
<button type="button" class="btn btn-danger" id="confirmModalOk">
Confirmer
</button>
</div>
</div>
</div>
</div>