FYI, here’s a link to the Omni Automation website version of the Kanban plug-in inspired by this conversation!
https://omni-automation.com/omnifocus/plug-in-kanban-board.html
FYI, here’s a link to the Omni Automation website version of the Kanban plug-in inspired by this conversation!
https://omni-automation.com/omnifocus/plug-in-kanban-board.html
Thank you for pulling this into Omni Automation, Sal! Any chance you have the images in colors that work with light mode, i.e. non-gray?
Ah. Right. How about if I upload the icon files and everyone can change them the way they like? I’ve added a dark version of the icon source files (PNG) to the webpage!
https://omni-automation.com/omnifocus/plug-in-kanban-board.html
Kanban-Dark-Icons.zip (114.8 KB)
Thank you for taking the time to add those dark icons, sir!
@Sal, do you have a strong preference for offering this as two scripts rather than one ?
I notice that you have both:
but the second script:
Given that the error checking of the second largely duplicates the work of the first, might it not protect users from a bit of complexity to simply combine the functions of each ?
e.g. with a library function for building / checking arbitrary nests of tags:
// checkedTagTree :: (String, NameNest) -> Tag
const checkedTagTree = nameNest => {
const check = parent =>
([tagName, subTags]) => {
const
namedTag = parent.tagNamed(tagName) || (
new Tag(tagName, parent.ending)
);
return (
// ------ EFFECTS IN OMNIFOCUS -------
// Tag position among peers normalised,
// unless this is a top-level tag.
//
// (The right side of an && expression is
// only evaluated if the left side
// evaluates to true).
(parent !== globalThis) && moveTags(
[namedTag], parent
),
// Descendant tags found or created
// and ordered recursively.
subTags.forEach(check(namedTag)),
// ---- AND VALUE IN JAVASCRIPT -----
// A reference to the checked tag tree.
namedTag
);
};
return check(globalThis)(nameNest);
};
You could avoid error handling with a preliminary check / repair in each tagging script:
writing things like:
const
kanbanTag = checkedTagTree(
["Kanban",
[
["To Do", []],
["In Progress", []],
["Waiting", []],
["Done", []]
]
]
),
todoTag = kanbanTag.tagNamed("To Do"),
peerTags = kanbanTag.flattenedChildren;
Just discovered the Kanban plug-in (v 1.1). It’s wonderful.
Display Board works differently on Mac vs iOS, and I’m wondering if it’s by design or a bug.
On Mac, Display Board shows all 4 Kanban tags by group (as expected).
On iOS, Display Board shows just the To Do tag. Anyone else experience this?