]> git.scottworley.com Git - vopamoi/blobdiff - vopamoi.ts
Don't assume input is first child
[vopamoi] / vopamoi.ts
index a1149595bb86c84ab22b48546dd29b67023ac813..bc399bcb0936153b0dcdf694af01f969b3fbc1b0 100644 (file)
@@ -76,7 +76,7 @@ const Model = {
     if (!target) return null;
     if (target.hasAttribute("data-description")) {
       // Oh no: An edit has arrived from a replica while a local edit is in progress.
-      const input = target.firstChild as HTMLInputElement;
+      const input = target.getElementsByTagName("input")[0]!;
       if (
         input.value === target.getAttribute("data-description") &&
         input.selectionStart === input.value.length &&
@@ -537,6 +537,16 @@ function BrowserUI() {
       }
     },
 
+    setUntaggedView: function () {
+      for (const task of document.getElementsByClassName("task")) {
+        if (task.getElementsByClassName("tag").length === 0) {
+          task.classList.remove("hide");
+        } else {
+          task.classList.add("hide");
+        }
+      }
+    },
+
     undo: function () {
       const ret = ui.undo();
       if (ret && ret instanceof HTMLElement) ret.focus();
@@ -613,10 +623,12 @@ function handleKey(event: any) {
       if (event.key == "a") return browserUI.setView("all");
       if (event.key == "c") return browserUI.setView("cancelled");
       if (event.key == "d") return browserUI.setView("done");
+      if (event.key == "i") return browserUI.setUntaggedView();
       if (event.key == "q") return browserUI.setView("todo");
       if (event.key == "s") return (inputState = InputState.VS);
       if (event.key == "T") return browserUI.resetTagView();
       if (event.key == "t") return browserUI.setTagView();
+      if (event.key == "u") return browserUI.setUntaggedView();
       if (event.key == "v") return browserUI.resetView();
       if (event.key == "w") return browserUI.setView("waiting");
       if (event.key == "x") return browserUI.setView("deleted");