diff --git a/delete-composant.html b/delete-composant.html new file mode 100644 index 0000000..e71f7b8 --- /dev/null +++ b/delete-composant.html @@ -0,0 +1,25 @@ + +
+ + + \ No newline at end of file diff --git a/delete-composant.js b/delete-composant.js new file mode 100644 index 0000000..c55b3f1 --- /dev/null +++ b/delete-composant.js @@ -0,0 +1,42 @@ +// Injection du modal +fetch("../../delete-composant.html") + .then(res => { + if (!res.ok) throw new Error("Modal HTML introuvable"); + return res.text(); + }) + .then(html => { + document.getElementById("modal-placeholder").innerHTML = html; + initDeleteModalLogic(); + }) + .catch(err => console.error(err)); + +// Logique du modal +function initDeleteModalLogic() { + let rowToDelete = null; + + const modalElement = document.getElementById("deleteModal"); + const itemNameSpan = document.getElementById("itemName"); + const confirmBtn = document.getElementById("confirmDeleteBtn"); + + const deleteModal = new bootstrap.Modal(modalElement); + + document.body.addEventListener("click", (event) => { + const button = event.target.closest(".delete-btn"); + if (!button) return; + + rowToDelete = button.closest("tr"); + + const firstCell = rowToDelete.querySelector("td"); + const itemName = firstCell ? firstCell.textContent.trim() : "cet élément"; + + itemNameSpan.textContent = itemName; + deleteModal.show(); + }); + + confirmBtn.addEventListener("click", () => { + if (rowToDelete) rowToDelete.remove(); + rowToDelete = null; + deleteModal.hide(); + }); +} + diff --git a/header-composant.html b/header-composant.html new file mode 100644 index 0000000..c7f2f1a --- /dev/null +++ b/header-composant.html @@ -0,0 +1,100 @@ + + + + + +