====== ToDo Plugin ====== ---- plugin ---- description: Create a simple, checkbox based ToDo List author : Leo Eibler, Christian Marg, Markus Gschwendt email : dokuwiki@sprossenwanne.at, marg@rz.tu-clausthal.de type : Syntax, Action lastupdate : 2024-05-10 compatible : Frusterick Manners, Elenor Of Tsort, Weatherwax, Adora Belle, Binky, Ponder Stibbons, Hrun, Detritus, Greebo, Hogfather, Igor, Jack Jackrum, Kaos depends : conflicts : similar : do tags : todo, task, taskmanagement downloadurl: https://github.com/leibler/dokuwiki-plugin-todo/archive/refs/tags/latest.zip sourcerepo : https://github.com/leibler/dokuwiki-plugin-todo bugtracker : https://github.com/leibler/dokuwiki-plugin-todo/issues donationurl: screenshot_img : ---- Previous authors: [[babbage@digitalbrink.com|Babbage]] ===== Download and Installation ===== Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually. ===== Usage and examples ===== ==== Creating tasks ==== After installing the plugin, simply enter this information on the page you wish to create the todo list: Title of todo Action Each '''' tag will create one checkbox for the action. To create a checkbox that is check by default, create your todo like this: Title of todo Action Using bulleted lists (''*'') is recommended, as it will allow you to more easily make a 'list' out of your items to do. ==== Assign tasks to persons ==== To assign users use the ''@'' symbol like this: Task for leo Completed task for leo The name of the user can use: * the following characters: // a-z, A-Z, 0-9, .-_ // * No (white)spaces are allowed! So ''@leo.eibler'', ''@Leo_Eibler'' will work but ''@Leo Eibler'' will not work! {{http://www.eibler.at/dokuwiki-todo/04-en_use_dokuwiki_todo_plugin-task-assign.jpg?600|Ver. 2013-04-11 user assignment source screenshot}} {{http://www.eibler.at/dokuwiki-todo/04-en_use_dokuwiki_todo_plugin-task-assign-result.jpg?600|Ver. 2013-04-11 user assignment result screenshot}} Multiple users can be assigned in one todo (separated by space character). This way a todo can show up in todo lists of different users. Task for leo and runout and somebody ==== Render username ==== Render the username as id, full name or not at all, allowed values: ''user'' or ''real'' or ''none'' Task with real username of somebody shown ==== Start and Due date ==== Set a start and/or due date and get colored output if todo has started or is due Text Text Text Colors,... can be set in the style.css file in the plugin directory (lib/plugin/todo) ==== Set task priority ==== To set priority for to-do item add 1-3 exclamation marks in the opening tag: | ''!'' | low priority | | ''!!'' | medium priority | | ''!!!'' | high priority | More than 3 exclamation marks are parsed as high priority. Text ==== Formatting ==== Formatting is not allowed inside of the ''%%%%'' tags. However, if you wish for your text to be bold or have some other type of style (other than the default one provided), you can surround the todo tag with the formatting of your choice. The resulting action text should then be displayed with your choice of formatting when your changes have been saved. ==== QuickButton ==== A quickbutton for inserting todo syntax is available in the editor toolbar. You can click the button (which is pictured as a checked-checkbox) or you can use the keyboard shortcut of ''[T]''. ==== Uncheck All Button ==== Add ''~~TODO:UNCHECKALL~~'' to the page. This generates a button with the label "Uncheck all todos". Once clicked, all ToDos of this page are reset. A minor edit with the summary "Unchecked all ToDos" is created. ===== Lightweight Task Management System - Lists ===== The new version (since version 2014-03-17) of the todo plugin allows to create an easy to use task management system to collect all todos from all pages on a single page. This feature deprecates the previous 'searchpattern' plugin integration. ==== First turn off caching ==== :!: ~~NOCACHE~~ ==== Omit Pages from TODOLISTs ==== If you have pages you never want to include in TODOLISTs, you can put following on these pages: ~~NOTODO~~ ==== Display all open and closed todos from all pages ==== ~~TODOLIST~~ ==== Counting todos and checked todos ==== Print a summary of checked todos and total todos like ''(10/14)'' ~~TODOLIST short:yes~~ ==== Assignments (users to tasks) ==== Filter the assignments, allowed values: ''yes'', ''no'', usernames in format''@username'' or ''username'', or placeholders ''@@USER@@'' or ''@@MAIL@@'' which are replaced by username or e-mail of current logged in user. ~~TODOLIST assigned:yes~~ ~~TODOLIST assigned:User1,User2~~ ~~TODOLIST assigned:@User1,@User2~~ ~~TODOLIST assigned:@@USER@@~~ ~~TODOLIST assigned:@@MAIL@@~~ finds tasks assigned using someones email. ==== Show/Hide checkbox ==== Do (not) show the checkbox, allowed values: ''yes'' or ''no'' ~~TODOLIST checkbox:no~~ ==== Render username==== Render the username as id, full name or not at all, allowed values: ''user'' or ''real'' or ''none'' ~~TODOLIST username:real~~ ==== Render header ==== Render the header as pageID, as the first header of the page or not at all, allowed values: ''id'' or ''firstheader'' or ''none'' ~~TODOLIST header:firstheader~~ ==== Show/Hide Start/Due Date ==== Do (not) show the Start/Due date, allowed values: ''yes'' or ''no'' ~~TODOLIST showdate:yes~~ ==== Completed Data Filter==== ===Completion state === Filter the completion state, allowed values: ''yes'' or ''no'' ~~TODOLIST completed:no~~ ~~TODOLIST completed:yes~~ ===Completion Date=== Filter by date the box was checked. ~~TODOLIST completedbefore:~~ ~~TODOLIST completedafter:~~ ~~TODOLIST completedat:~~ %%%% can be: Y-m-d like 2014-06-12 or a value like +10 or -10 or 0 invalid values will be substituted with today's date === Completion User (Who checked it) === Filter by user who checked the box. Comma separated list. ~~TODOLIST completeduser:jack,daniel,jessie~~ ==== Start/Due Date Filter==== Filter the TODOLIST by Start/Due Date. Absolute and relative Dates are possible. ~~TODOLIST startbefore:~~ ~~TODOLIST startafter:~~ ~~TODOLIST startat:~~ ~~TODOLIST duebefore:~~ ~~TODOLIST dueafter:~~ ~~TODOLIST dueat:~~ %%%% can be: Y-m-d like 2014-06-12 or a value like +10 or -10 or 0 invalid values will be substituted with todays date ==== Combined options ==== ~~TODOLIST assigned:@@USER@@ completed:yes ~~ ~~TODOLIST assigned:Gerrit,leo completed:no ~~ Some default values for these options can be set in the Configuration Manager ==== Filter the namespace of the task list ==== [[https://github.com/leibler/dokuwiki-plugin-todo/pull/32#issue-36869358|I've added]] the following option to the ''~~TODOLIST~~'' tag: ''ns'': If omitted it uses ''ns:all''. It can be used with the following parameters: * ''all'' -- displays todo's from everywhere (the current default behaviour) * ''/'' -- only displays todo's from pages containing in the ROOT namespace * '''' -- Where string can be any text. It checks the page-id if it starts with this string and then returns the pages with todo's that do; for example: * ''.'' or ending in '':.'' -- display this namespace **and** subnamespaces (not much tested) * ''.:'' -- display **only** subnamespaces (not much tested) ~~TODOLIST ns:todo~~ returns all todo's from the page todo in the root of the wiki, or from the namespaces starting with todo or from the page todo and the namespaces starting with todo. ~~TODOLIST ns:todo:~~ returns all todo's from the namespace todo. ~~TODOLIST ns:todo:r~~ returns all todo's from the namespaces or pages under todo, starting with an ''r''. ===Example of 'all todos'=== {{http://www.eibler.at/dokuwiki-todo/12-en_extension_with_searchpattern_all-tasks.jpg?600|Ver. 2013-04-11 overview over all tasks on single page using searchpattern plugin}} ===Example of 'all todos' from many namespaces=== If you want to display more than one namespace in a single page, you can put a TODOLIST for each : ~~TODOLIST ns:foo:~~ ~~TODOLIST ns:bar:~~ ===== Plugin Settings ===== ====Allow actions to also link to pages with the same name?==== Default: Off This option (when enabled) will allow your actions to also link to a page with the same name. This way, if you have important details about an action, you can place them in this link. However, Backlinks to the TODO do not currently work. Also, if you use the [[plugin:move|Move Plugin]], the link will not be updated/moved if the details page that the link points to is moved. ====What namespace should your actions be created in (".:" = Current NS, Blank = Root NS)==== Default: [Empty] This option allows you specify where actions links should be placed. Using ".:" will cause the actions to link to whatever namespace you are currently in. Leaving it blank or typing ":" will cause all actions to link to the root namespace. Using something like ".:actions:" will cause the actions to link to whatever the current namespace is, plus an "actions" namespace. (Added with version 9-9-09) ====Should the actions have strike-through applied when checked?==== Default: On This option (when enabled) will place a strike-through in the actions that have been completed. When disabled, an action can be checked, but the text will not have strike-through applied. ===If AllowLinks is disabled, should clicking the actions' text mark the action complete?=== Default: On When this option is enabled, and the links option is disabled, then clicking on the text of an action will mark that action as being complete. (Added with version 10-14-09) ===== Development ===== Please request your features and issues in the tracker at https://github.com/leibler/dokuwiki-plugin-todo/issues. ==== Known Issues ==== The ''~~TODOLIST~~''-functionality finds every ''...'' item, even when inside a code or a file block. Also, after being rendered on a TODOLIST page, toggling the checkbox of that item will update its code accordingly. This was reported in [[https://github.com/leibler/dokuwiki-plugin-todo/issues/12|Issue #12 on Github]] ==== ChangeLog ==== For the current default download package (see start of this page) one should refer to its GitHub Atom Feed: {{rss>https://github.com/leibler/dokuwiki-plugin-todo/commits/main.atom date}} ==== Subpages ==== * [[plugin:todo:customisations|Customizations]]