2025-01-01 17:03:09 -05:00

68 lines
1.9 KiB
JavaScript

import taskList from "task_list";
import Task from "task";
import * as dom from "DOM";
const displayTasks = () => {
taskList.sortByDueDate();
const select = dom.get("#tasks");
select.textContent = ""; // clear previous tasks
for (let task of taskList) {
const opt = document.createElement("option");
opt.appendChild(document.createTextNode(task));
select.appendChild(opt);
}
dom.focus("#task");
}
dom.load(() => {
dom.addClick("#add_task", () => {
dom.clear("#msg"); // clear any previous message
const newTask = new Task(
dom.getValue("#task"),
dom.getValue("#due_date"));
let message = "";
if (newTask.description === "") {
message = "Task is required. ";
}
if (newTask.hasInvalidDueDate || newTask.isPastDue) {
message += "Due Date must be a valid date in the future."
}
if (message === "") {
taskList.load().add(newTask).save();
dom.clear("#task");
dom.clear("#due_date");
displayTasks();
} else {
dom.setText("#msg", message);
dom.select("#task");
}
});
dom.addClick("#clear_tasks", () => {
taskList.clear();
dom.clear("#tasks");
dom.clear("#task");
dom.clear("#due_date");
dom.clear("#msg");
dom.focus("#task");
});
dom.addClick("#delete_task", () => {
dom.clear("#msg"); // clear any previous message
const index = dom.get("#tasks").selectedIndex;
if (index === -1) {
dom.setText("#msg", "Please select a task to delete.");
} else {
taskList.load().delete(index).save();
displayTasks();
}
});
taskList.load()
displayTasks();
});