task.setAttribute("class", "task");
task.setAttribute("tabindex", "0");
task.setAttribute("data-created", timestamp);
+ task.setAttribute("data-state", "todo");
document.getElementById("tasks")!.appendChild(task);
return task;
},
return parseFloat(task.getAttribute("data-created")!);
},
- getState: function (task: Element): string {
- return task.getAttribute("data-state") ?? "todo";
- },
-
getTask: function (createTimestamp: string) {
for (const task of document.getElementsByClassName("task")) {
if (task.getAttribute("data-created") === createTimestamp) {
const task = this.getTask(createTimestamp);
if (task) {
task.setAttribute("data-state", state);
- if (task instanceof HTMLElement) {
- task.style.display = state == "todo" ? "block" : "none"; // Until view filtering
- }
}
},
};
firstVisibleTask: function () {
for (const task of document.getElementsByClassName("task")) {
- if (task instanceof HTMLElement && task.style.display !== "none") {
+ if (task instanceof HTMLElement && task.getAttribute("data-state")! === "todo") {
return task;
}
}
while (true) {
cursor = increment > 0 ? cursor.nextElementSibling : cursor.previousElementSibling;
if (!cursor || !(cursor instanceof HTMLElement)) break;
- if (cursor.style.display !== "none") {
+ if (cursor.getAttribute("data-state")! === "todo") {
offset -= increment;
valid_cursor = cursor;
}
setState: function (newState: string) {
const task = document.activeElement;
if (!task) return;
- const oldState = Model.getState(task);
+ const oldState = task.getAttribute("data-state")!;
if (newState === oldState) return;
const createTimestamp = task.getAttribute("data-created")!;
this.moveCursor(1) || this.moveCursor(-1);