X-Git-Url: http://git.scottworley.com/vopamoi/blobdiff_plain/0726872b8e043c19883d26492ce42d3411505179..4ccaa1d6e256ca198e0d15e5b51553edb063f3bf:/vopamoi.ts?ds=inline diff --git a/vopamoi.ts b/vopamoi.ts index c17a2f0..fe97410 100644 --- a/vopamoi.ts +++ b/vopamoi.ts @@ -125,6 +125,7 @@ const Model = { const tag = this.hasTag(task, tagName); if (!tag) return; task.removeChild(tag); + if (task instanceof HTMLElement) task.focus(); }, setPriority: function (createTimestamp: string, priority: number): Element | null { @@ -218,6 +219,10 @@ function UI() { undoLog.push(`Edit ${createTimestamp} ${oldDescription}`); return log.recordAndApply(`${clock.now()} Edit ${createTimestamp} ${newDescription}`); }, + removeTag: function (createTimestamp: string, tag: string) { + undoLog.push(`Tag ${createTimestamp} ${tag}`); + return log.recordAndApply(`${clock.now()} Untag ${createTimestamp} ${tag}`); + }, setPriority: function (createTimestamp: string, newPriority: number, oldPriority: number) { undoLog.push(`Priority ${createTimestamp} ${oldPriority}`); return log.recordAndApply(`${clock.now()} Priority ${createTimestamp} ${newPriority}`); @@ -376,6 +381,17 @@ function BrowserUI() { } }, + removeTag: function () { + var target = document.activeElement; + if (!target) return; + if (target.classList.contains("task")) { + const tags = target.getElementsByClassName("tag"); + target = tags[tags.length - 1]; + } + if (!target || !target.classList.contains("tag")) return; + ui.removeTag(target.parentElement!.getAttribute("data-created")!, target.textContent!); + }, + returnFocusAfterInput: function (): boolean { if (taskFocusedBeforeJumpingToInput) { taskFocusedBeforeJumpingToInput.focus(); @@ -459,6 +475,7 @@ function handleKey(event: any) { if (event.key == "s") return browserUI.setState("someday-maybe"); if (event.key == "w") return browserUI.setState("waiting"); if (event.key == "X") return browserUI.setState("deleted"); + if (event.key == "x") return browserUI.removeTag(); if (event.key == "u") return browserUI.undo(); if (event.key == "e") return browserUI.beginEdit(event); if (event.key == "t") return browserUI.beginTagEdit(event);