History: PluginKanban
Preview of version: 35
PluginKanban
New in Tiki25 (work was done for Tiki24 but it wasn't ready). Use this wiki plugin to move tracker items with drag & drop capabilities in Trello-like boards.
"A kanban board is one of the tools that can be used to implement Kanban to manage work at a personal or organizational level.
Kanban boards visually depict work at various stages of a process using cards to represent work items and columns to represent each stage of the process. Cards are moved from left to right to show progress and to help coordinate teams performing the work. A kanban board may be divided into horizontal "swimlanes" representing different kinds of work or different teams performing the work." Source: https://en.wikipedia.org/wiki/Kanban_board
Components of a Kanban board
- Columns: The columns represent the different stages of the workflow. For example, a Kanban board might have columns for "Backlog", "To Do", "In Progress", and "Done"
- Cards: The cards represent individual work items. Each card should contain information about the work item, such as the title, description, priority, and due date.
- Swimlanes: Swimlanes are used to group cards together. For example, a Kanban board for a software development team might have lanes for different types of work items, such as "Bugs", "Features", and "Maintenance".
- WIP limits: WIP limits are used to control the amount of work that is in progress at any given time. This helps to ensure that work is completed in a timely manner.
Here is a demo: https://kanban.dev4.evoludata.com/
Manual Setup
Settings requirement
It requires following preference settings to work:
- API access enabled (Security > API access),
- Enable Vue.js (Features > Interface > Enable Vue.js)
- Always Load Vue.js (Features > Interface > Always Load Vue.js),
In the Tiki admin Control Panel, search for "vuejs".
By default mysql search won't find "vue" or "vue.js" (mysql ft_min_word_len default is greater than 3 char, see mysql documentation).
Feature requirements
You will also need to set or use an existing tracker to store the cards (items) of your Kanban board with a few fields required for the board to be generated. Note that those fields should be public and searchable (tracker edit Fields list) and don't forget to rebuild-index after changes.
The column parameter
The column parameter is looking for numerical values. If you use a dropdown with text values only it won't populate the items unless you fill the "Column acceptable values and configuration" parameter. Alternatively, you can use numerical value and text label in the dropdown field options that will be used as your "Column". IE: 0=Not done,1=Done,2=Need improvement.''
Filtering items displayed
The Kanban plugin items can be filtered using the same filters as the plugin List family. (see: PluginList filter control block )
Parameters
Introduced in Tiki 25. Required parameters are in
bold
.Go to the source code
Preferences required: wikiplugin_kanban
Parameters | Accepted Values | Description | Default | Since |
---|---|---|---|---|
order |
word | Sort order for cards within a cell. Must be a numeric field. You will have to create it if the board represents an existing tracker. It is not meant to be displayed to the user, or represent something global like "priority" (that would make no sense on a partial representation). It merely means that the card is displayed above any card with lower value, and below any card with a higher one if displayed in the same cell. When a card is moved board will halve the value of the two surrounding cards to compute the new value. | 25.0 | |
title |
word | Tracker field containing the inline editable text shown on each card. | 25.0 | |
column |
word | Tracker field representing the columns, usually a dropdown list with options such as "Wishes", "Work" and "Done". | 25.0 | |
boardTrackerId |
int | Id of the tracker the board is a partial representation of | 24.0 | |
description |
word | Optional text shown below the title on each card. | 25.0 | |
swimlane |
word | Tracker field representing the "rows" or "swimlanes" of the board. Can be any field with discrete values. Usually represents a client, a project, or a team member. By default, all tracker items with that field set to a valid values will be shown on the board. To allow empty values, see swimlaneValues. Note: A kanban board can have multiple rows, but these rows aren't independent, they share the same possible States and Wip limits. If what you want is completely independent "rows", create two boards on the same tracker, with different filters. | 25.0 | |
columnValues |
text separator: : |
For the tracker field mapped in "column", defines for each column the value a tracker item must have for that field, as well as the label displayed as the column header and the WiP limit for that column. Implicitely defines the number of columns and in which order they are shown; You can skip values so they are not part of the board (and you typically do, if only to eventually archive done cards). The parameter is and array of colon separated values, each containing a coma separated arguments configuring the column. In order, the configuration represent the: 1) Mandatory. The value the mapped field must have in the tracker item for the card to be shown in the matching column. 2) Optional. If present and not "null", the text to be displayed as the column header instead of the normal tracker field label for the value above. (For example "Done" instead of "Closed") 3) Optional. If present and not "null", the WiP (Work in Progress) limit for the cards in the column. In "null", there is no limit for the number of cards in the column. Typically you will use null for the first and last column. null or nothing between the comas means the parameter is not set. Necessary since the arguments are positional. So for example: someValue,someAlternateTextToDisplay,null:someOtherValue,,4 Means the board would have two colums, the first column would be titled "someAlternateTextToDisplay" containing cards with the value "someValue" for the mapped field and no limit to the number of cards. The second column would have cards with "someOtherValue" for the mapped field, with whatever the label is for that value in the field definition, and the column would be highlighted red if there is more than 4 cards. No card with any other value would be anywhere on the board. To allow empty values, include a field with an empty value (ex: someValue:someOtherValue:,Unsorted cards) If the whole parameter is absent (not recommended), all possible field values will be used to generate columns (except the empty value). | 25.0 | |
swimlaneValues |
text separator: : |
Similar to columnValues, except there is no WiP limit. To allow empty values, include a field with an empty value (ex: someValue:someOtherValue:,Unsorted cards). An aditional swimlane will be included for empty values. If the parameter is present but only contains the empty value (ex: ,Unsorted cards), all possible field values will be used to generate swimlanes, and an aditional swimlane will be included for empty values. | 25.0 |
To filter cards on the board (beyond swimlaneValues and columnValues), you can use the filter control block (https://doc.tiki.org/PluginList-filter-control-block), which will filter the items in the tracker. It is important to note that if you do, there is no guarantee that newly created items from the board (their default values may filter them out).
Examples
Example 1
As of 2023-03-13, doc.tiki.org is set up for Kanban style management of its own documentation. The example is here: https://doc.tiki.org/DocsTodoKanbanByPriority
Example 2
Here is the Step by step PluginKanban setup example.
Step 1 : Tracker setup
Setup a tracker to store the cards (items) of your Kanban board. Copy the below Profile/YAML code to import the tracker
permissions: { } preferences: { } objects: - type: tracker ref: kanban_tasks data: name: 'Kanban Tasks' description: "{syntax type=tiki}\r\n{syntax type=tiki}\r\nTo test the new Kanban plugin" sort_default_order: desc show: - list_modification_date - type: tracker_field ref: kanban_tasks_ktaskName data: name: Name permname: ktaskName tracker: '$profileobject:kanban_tasks$' options: samerow: 1 autocomplete: 'n' exact: 'n' type: text_field order: 10 visby: { } editby: { } flags: - list - public - mandatory - type: tracker_field ref: kanban_tasks_ktaskDescription data: name: Description permname: ktaskDescription tracker: '$profileobject:kanban_tasks$' options: samerow: 1 distinct: 'n' wysiwyg: 'n' type: text_area order: 20 visby: { } editby: { } flags: - public - type: tracker_field ref: kanban_tasks_ktaskSwimlane data: name: Swimlane permname: ktaskSwimlane tracker: '$profileobject:kanban_tasks$' options: options: - top=Crawl - middle=Butterfly - bottom=Backstroke type: dropdown order: 40 description: 'Also row' visby: { } editby: { } flags: - list - public - type: tracker_field ref: kanban_tasks_ktaskPriority data: name: Priority permname: ktaskPriority tracker: '$profileobject:kanban_tasks$' options: samerow: 1 dec_point: . thousands: ',' type: numeric order: 50 visby: { } editby: { } flags: - list - public - type: tracker_field ref: kanban_tasks_ktaskColumn data: name: Column permname: ktaskColumn tracker: '$profileobject:kanban_tasks$' options: options: - wish=Wishes - prending=Pending - open=Open - done=Done type: dropdown order: 60 visby: { } editby: { } flags: - list - public - type: tracker_option ref: kanban_tasks_sort_default_field data: tracker: '$profileobject:kanban_tasks$' name: sort_default_field value: modification
Once the YAML code above copied, in your tiki instance, go to Trackers -> Import -> Import From Profile/YAML -> paste the above YAML code, then Import
After importing Tracker from Profile/YAML, you should have a tracker with all necessary fields as shown below:
Step 2 : Use PluginKanban in your Wiki page
Copy the below code into your wiki page (replacing the boardTrackerId
in the code below from 11 to the number of your Kanban tracker number in your tiki site).
{KANBAN(boardTrackerId="11" title="ktaskName" description="ktaskDescription" column="ktaskColumn" columnValues="wish,Ready,10:prending,Pending,5:open:done" order="ktaskPriority" swimlane="ktaskSwimlane" swimlaneValues=",Unsorted cards")}{KANBAN}
i.e. PluginKanban uses permanent names of tracker fields as parameter value.
The result should be as shown below:
Step 3 : Usage
Related pages
Aliases
Related