Plug-In: Kanban Board
A plug-in for creating and maintaining a tag-based Kanban Board in OmniFocus. Based upon a creative concept and project by Serena (www.sleepyowl.ink) where the Kanban Board is OmniFocus tag-based and displayed as stack of horizontal elements (categories).
From Wikipedia: A Kanban Board is one of the tools that can be used to implement Kanban to manage work at a personal or organizational level. An overview of Kanban can be viewed at the Atlassian website.
Installation
Follow these steps to install, setup, and use the plug-in:
- INSTALL the plug-in ZIP archive. The OmniFocus plug-in installation process will present a dialog for approving the OmniFocus plug-in, and choosing its installation location.
- Once the plug-in is installed, the “Kanban Board” menu item will be displayed in the Automation menu. Select the “Display Board” menu item from the “Kanban Board” sub-menu, and the plug-in will create the Kanban tags and display the board in the main window.
- On macOS, select “Customize Toolbar…” from the View menu, and drag the plug-in action icons to the toolbar in the manner shown in the illustration below.
- Display Board • To Do • In Process • Waiting • Done • Clear
NOTE: The latest version of this plug-in uses Apple SF Symbols font for icons that automatically adapt to the current system display mode (Light/Dark). You can customize the icons (SF Symbols characters) by editing the manifest file in the plug-in bundle. (See Plug-Ins documentation)
Using the Plug-In
To use the plug-in:
- Select the “Display Board” option to show the Kanban Board. The Kanban tag set will automatically be created and displayed.
- To add tasks to the board, select the tasks to add and select one of the category assignment options from the plug-in: To Do, In Progress, Waiting, and Done.
- To move tasks between categories, select the tasks to manipulate and select one of the category assignment options from the plug-in.
- Choose the “Clear” option to remove all Kanban tags from the selected tasks.
TIP: For quick access, assign keyboard shortcuts to the Kanban Board actions! (Here’s how!)
The Kanban Board Interface
Traditionally Kanban Board categories are displayed as columns. In OmniFocus, categories are displayed as a vertical stack of horizontal entries:
Plug-In Scripts
Here are two of the scripts contained in the plug-in:
Setup Script
(() => {
const action = new PlugIn.Action(function(selection, sender){
// IDENTIFY KANBAN TAG, CREATE IF MISSING
targetTag = flattenedTags.byName("Kanban") || new Tag("Kanban")
// ADD KANBAN CATEGORIES IF MISSING
tagTitles = ["To Do", "In Progress", "Waiting", "Done"]
tagTitles.forEach(title => {
if (!targetTag.children.byName(title)){
new Tag(title, targetTag)
}
})
// REORDER THE CATEGORIES
tagTitles.forEach(title => {
tag = targetTag.children.byName(title)
moveTags([tag], targetTag)
})
// SHOW THE TAGS
tagIDs = targetTag.children.map(tag => tag.id.primaryKey)
tagIDsString = tagIDs.join(",")
URL.fromString("omnifocus:///tag/" + tagIDsString).open()
});
return action;
})();
Assign as “To Do”
(() => {
const action = new PlugIn.Action(function(selection, sender){
try {
var parentTag = flattenedTags.byName("Kanban")
if(!parentTag){
errMessage = "There is no “Kanban” tag. Please select “Display Board” from the “Kanban Board” sub-menu in the Automation menu to add the missing tag."
throw new Error(errMessage)
}
childTag = parentTag.children.byName("To Do")
if(!childTag){
errMessage = "There is no “To Do” tag. Please select “Display Board” from the “Kanban Board” sub-menu in the Automation menu to add the missing tag."
throw new Error(errMessage)
}
tagSet = parentTag.flattenedChildren;
selection.tasks.forEach(task => {
task.removeTags(tagSet)
task.addTag(childTag)
})
}
catch(err){
new Alert("Missing Tag", err.message).show()
}
});
action.validate = function(selection, sender){
return (selection.tasks.length > 0 )
};
return action;
})();
Return to: OmniFocus Plug-In Collection