add task delete modal and alert

This commit is contained in:
2026-05-05 17:00:42 +08:00
parent 584ef9cbb7
commit cf2df504b1
2 changed files with 44 additions and 3 deletions

View File

@@ -42,6 +42,20 @@ function resetForm() {
taskForm.reset();
}
function showAlert(message, variant = 'success') {
const container = document.getElementById('alertContainer');
if (!container) return;
const alert = document.createElement('div');
alert.className = `alert alert-${variant} alert-dismissible fade show shadow-sm`;
alert.role = 'alert';
alert.innerHTML = `
${message}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
`;
container.appendChild(alert);
setTimeout(() => bootstrap.Alert.getOrCreateInstance(alert).close(), 3000);
}
const sortButton = document.getElementById("sortSelect");
window.addEventListener("DOMContentLoaded", () => {
sortButton.value = "default";
@@ -93,7 +107,11 @@ taskForm.addEventListener("submit", (event) => {
else if (event.target.classList.contains("delete")) {
const taskId = event.target.getAttribute("data-id");
deleteTask(taskId);
const confirmButton = document.getElementById('confirmDeleteButton');
confirmButton.addEventListener('click', async () => {
await deleteTask(taskId);
bootstrap.Modal.getInstance(document.getElementById('deleteModal')).hide();
}, { once: true });
}
else if (event.target.classList.contains('edit')) {
const task = {
@@ -148,7 +166,7 @@ function formatTask(task) {
li.innerHTML = `
<div class="d-flex justify-content-between align-items-start">
<h4 class="${done} col-11">${task.title}</h4>
<button data-id="${task._id}" type="button" class="btn-close delete" aria-label="Close"></button>
<button data-id="${task._id}" type="button" class="btn-close delete" data-bs-toggle="modal" data-bs-target="#deleteModal" aria-label="Close"></button>
</div>
<p class="${done}">${task.description}</p>
<p class="${done}"><strong>Due: </strong>${new Date(task.dueDate).toLocaleDateString()}</p>
@@ -328,6 +346,7 @@ async function deleteTask(taskId) {
const data = await response.json();
console.log({ message: "Deleted Task:", Task: data });
displayTasks();
showAlert('Task deleted successfully.');
} catch (error) {
console.error("Error:", error);