From cddbdce1bb49d2568668fccc788c8356012b3fe2 Mon Sep 17 00:00:00 2001 From: Scott Worley Date: Thu, 27 Jan 2022 23:20:39 -0800 Subject: [PATCH] "va" to view all tasks ... except deleted tasks. You have to go to the deleted-tasks view specifically to see those. --- vopamoi.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/vopamoi.ts b/vopamoi.ts index 64799cf..24b8774 100644 --- a/vopamoi.ts +++ b/vopamoi.ts @@ -265,7 +265,7 @@ function BrowserUI() { const input = document.getElementById("taskName"); if (input.value.match(/^ *$/)) return; const task = ui.addTask(input.value); - if (currentViewState === "todo") { + if (currentViewState === "todo" || currentViewState === "all") { task instanceof HTMLElement && task.focus(); } else if (this.returnFocusAfterInput()) { } else { @@ -337,7 +337,8 @@ function BrowserUI() { firstVisibleTask: function () { for (const task of document.getElementsByClassName("task")) { - if (task instanceof HTMLElement && task.getAttribute("data-state") === currentViewState) { + const state = task.getAttribute("data-state"); + if (task instanceof HTMLElement && (state === currentViewState || (currentViewState === "all" && state !== "deleted"))) { return task; } } @@ -358,7 +359,8 @@ function BrowserUI() { while (true) { cursor = increment > 0 ? cursor.nextElementSibling : cursor.previousElementSibling; if (!cursor || !(cursor instanceof HTMLElement)) break; - if (cursor.getAttribute("data-state")! === currentViewState) { + const state = cursor.getAttribute("data-state")!; + if (state === currentViewState || (currentViewState === "all" && state !== "deleted")) { offset -= increment; valid_cursor = cursor; } @@ -437,13 +439,19 @@ function BrowserUI() { const oldState = task.getAttribute("data-state")!; if (newState === oldState) return; const createTimestamp = task.getAttribute("data-created")!; - this.moveCursor(1) || this.moveCursor(-1); + if (currentViewState !== "all" || newState == "deleted") { + this.moveCursor(1) || this.moveCursor(-1); + } return ui.setState(createTimestamp, newState, oldState); }, setView: function (state: string, color: string) { const sheet = (document.getElementById("viewStyle") as HTMLStyleElement).sheet!; - sheet.insertRule(`.task:not([data-state=${state}]) { display: none }`); + if (state === "all") { + sheet.insertRule(`.task[data-state=deleted] { display: none }`); + } else { + sheet.insertRule(`.task:not([data-state=${state}]) { display: none }`); + } sheet.insertRule(`:root { --view-state-indicator-color: ${color}; }`); sheet.removeRule(2); sheet.removeRule(2); @@ -505,6 +513,7 @@ function handleKey(event: any) { if (event.key == "m") return browserUI.setState("someday-maybe"); } else if (inputState === InputState.V) { inputState = InputState.Root; + if (event.key == "a") return browserUI.setView("all", "Gold"); if (event.key == "c") return browserUI.setView("cancelled", "Red"); if (event.key == "d") return browserUI.setView("done", "LawnGreen"); if (event.key == "q") return browserUI.setView("todo", "White"); -- 2.44.1