feat: hide completed tasks from previous days

Added 'updateTaskDisplay' method to hide tasks marked as done if their due date is before the current day. This helps declutter the task view by filtering out outdated completed tasks. The 'updateTaskDisplay' method is invoked during initialization and when tasks are loaded.
This commit is contained in:
Kumi 2024-09-09 13:37:33 +02:00
parent 4586632c46
commit 2ad254e241
Signed by: kumi
GPG key ID: ECBCC9082395383F

View file

@ -60,6 +60,7 @@ class Kanblendar {
this.initDragAndDrop(); // Initialize drag and drop functionality
this.requestNotificationPermission(); // Request permission for notifications
this.highlightCurrentTimeSlot(); // Highlight the current time slot
this.updateTaskDisplay(); // Hide tasks completed before today
setInterval(() => this.highlightCurrentTimeSlot(), 60000); // Update highlight every minute
}
@ -295,7 +296,7 @@ class Kanblendar {
document.getElementById('kanblendar-taskDescription').value = task.querySelector('.kanblendar-task-desc').innerText;
// Convert task's dueTime to a valid datetime-local format
const dueTime = task.dataset.dueTime ? new Date(task.dataset.dueTime).toISOString().slice(0,16) : '';
const dueTime = task.dataset.dueTime ? new Date(task.dataset.dueTime).toISOString().slice(0, 16) : '';
document.getElementById('kanblendar-taskDueTime').value = dueTime;
document.getElementById('kanblendar-taskColumn').value = task.dataset.column || '';
@ -527,6 +528,7 @@ class Kanblendar {
this.moveTaskToNonTimedSection(taskElement, column);
}
});
this.updateTaskDisplay();
this.adjustTimeSlotHeights();
}
@ -539,4 +541,25 @@ class Kanblendar {
});
document.dispatchEvent(event);
}
updateTaskDisplay() {
const now = new Date();
now.setHours(0, 0, 0, 0);
// Iterate over each task and check its column and due date
this.tasks.forEach((task, taskId) => {
const taskElement = document.getElementById(taskId);
// Parse the task's due time
const taskDueDate = task.dueTime ? new Date(task.dueTime) : null;
if (task.column === 'done' && taskDueDate && taskDueDate < now) {
// Hide tasks that are done and before today's date
taskElement.style.display = 'none';
} else {
// Show all other tasks
taskElement.style.display = 'block';
}
});
}
}