GTD Task List Manager
Users: +1 -1
Description
An experimental JavaScript GTD task/todo list manager.
I use PmWiki to store all sorts of information: notes, links, project outlines, calendar reminders. I want to also have a simple but versatile todo/task list manager, inspired by the GTD technique by David Allen.
The main differences between GTD-TLM and the other PmWiki todo managers are:
- the main program is written in JavaScript 1.2:
- it runs mainly in your browser instead of on the server,
- lightning fast to add, modify, delete, filter and search tasks, as this is done in the memory of your browser,
- some task updates or searches can be done with a single mouse click,
- you can make many changes, and save them at once to a PmWiki data page at the end of your session,
- a PmWiki page is only used as a data storage for the list of tasks,
- the program may not work in very old browsers (pre-2000), or in stripped-down ones (on some mobile phones),
- JavaScript needs to be enabled in your browser, at least for your own website where you install GTD-TLM,
- GTD-TLM tries to closely follow the GTD method: with "Next actions", "Waiting for", "Some day/Maybe", "Done", implementing @Contexts and $Projects, and priorities,
- start up display (filter, search, status) can be selected, or GTD-TLM can display all the tasks,
- your data is stored in a simple plain text format, you can easily retrieve/change/search it even with other tools.
Installation
- Copy the file gtd-tlm.phpΔ to your /cookbook/ directory.
- Copy the file gtd-tlm.jsΔ to your /pub/ directory (strip the .txt extention).
- Add such a line to your config.php or to a per group / page customization file:
include_once("$FarmD
/cookbook/gtd-tlm.php");
- Add this CSS code to your
/pub/css/local.css
file (you can adapt it for your needs):/** GTD Task List Manager */ select.gtd, input.gtd, textarea.gtd{ border: 1px solid #888888; margin: .2em; font-family: sans-serif; } select.gtd option { border-bottom: 1px solid #eeeeee; } option.next, label.next { color: black; } option.done, label.done { color: #cccccc; } option.waitingfor, label.waitingfor { color: orange; } option.ref, label.ref { color: #888 ; } option.maybe, label.maybe { color: green; } label b, .kbd { border: 1px solid #ddd; background-color: #fafafa; padding: 1px 2px; margin: 1px; font-family: monospace; color:black; } select.itemlist, textarea.cmdline, input.cmdline { width: 480px; } select.taglist { width: 120px; }
Usage
In a wiki page where you want your list manager form to be, add just (:gtd-tlm:)
.
- Your main tool is the command line on top. (See the screenshot above.)
- "Tasks" are shown in the wide listbox.
- "Tags" (contexts, projects) are in the narrow listbox on the left. Contexts are keywords preceded by "@", projects are keywords preceded by "$".
- "Task status" categories are the checkboxes below.
- At the bottom, the "Save changes" button: press it to store your task list to PmWiki.
Adding a task. Write in the command line text field "+" and the task description:
+ something I need to do @home
and press "Enter". The task will be placed on top of your task list.
Task status. A task entry can have any text or tag you like; it is very easy to find any task by searching for a word it contains. However, the first character of the task line indicates its status:
- "
!
", the task is with "Top or High Priority", - "
;
", the task is marked "Waiting For", - "
?
", the task is set for "Some day/Maybe", - "
.
", the task is "Done", - "
:
", the item is for "reference", requires no action - in any other case, the task is a "Next Action".
You can change the status of a task by right-click or Shift+click on it a couple of times.
You can display tasks with only some of the statuses, by (un)checking the checkboxes below.
Modifying a task. Select a task, then write in the command line text field "=
" and the new task description:
= modified task content
and press "Enter". The selected task will be modified. To delete a task, use just "=
".
You can middle-click or Ctrl+click on a task to copy it to the command line, this is very handy if you want to just add/remove a word or a tag.
Searching for tasks. Write in the command line :
? search terms -exclude
and press "Enter". The list will be filtered to show only tasks containing all the search terms. To exclude some terms, use "-" in front of them: only tasks without them will be shown.
Tag list. The tag list to the right contains @contexts and $projects that are present in your tasks.
- If you double-click on a tag, the task list will be filtered to only show tasks containing this tag.
- If you right-click of Shift+click on a tag, the task list will show all tasks.
- If you middle-click of Ctrl+click on a tag, the tag will be appended to the command line.
Command line. The command line recognizes the following commands (followed by Enter):
- "
? keyword
" : search/filter tasks (memo: question = query). Use "?" to list all tasks. - "
+ task
" : add a new task (memo: plus = addition) - "
* @home
" : AUTOAPPEND mode, will automatically add "@home" to every next task you add. You can quickly add multiple tasks with the same keywords, without typing them all. (memo: * = multiplication) To cancel the AUTOAPPEND mode, use just "*
". - "
= task
" : to completely change the selected task, or just "=
" to delete it. - You can double-click in the command line to clear it.
Configuration
The program is quite customizable: (:gtd-tlm parameters:)
where the optional parameters can be:
datapage=Group.Name
the wiki page where your task list is stored; if not set, will use a page "$FullName-gtddata" ($FullName is your current page). You need to have read permissions to see/filter/search your tasks, and write permissions to change them.lines=20
the number of lines in the task list box; default is 10, but if you have a big screen, a bigger list box may be more comfortable. To make the lists larger, change the CSS file.clines=4
the number of lines in the command line (default is 2).readonly=1
to remove the "Save changes" button.quickref=0
to remove the quick reference below the form.
To select which tasks should be shown on startup, use either one:
done=0 maybe=0 ref=0 waitingfor=0 top=0 next=0
to exclude tasks with these statuses. These parameters control the status checkboxes below the form, setting them to "0" means the checkboxes will be unchecked on startup.startup="@home -garage"
set a search to be executed at startup time (like in the "?" command line).
Notes
- "left-click" or just "click" means you press down and release with your main (left) mouse button,
- "right-click" means you click with your right mouse button,
- "middle-click" means you click with your middle mouse button (or on the wheel),
- "Shift+click" and "Ctrl+click" means you press down the "Shift" or the "Ctrl" key on your keyboard, "left-click", then release the "Ctrl" key,
- "double-click" means you left-click twice (quickly),
- a "selected list item" means you "clicked" on it, and its appearance changed, usually to a dark blue background color.
In some cases, on some browsers or computers, you cannot "middle-click" on a task, hence the "Ctrl+click" command which does the same. Same for "right-click"="Shift+click".
On some browsers, the tasks will not be colored; you can use the free Mozilla Firefox browser if you really need colored tasks.
The recipe is developed with the latest PmWiki 2.2 beta series; it uses UpdatePage() and will not work with versions older than 2.2.0-beta12 (which was published 2006-10-03).
The recipe should also work in UTF-8.
Release Notes
- 20150405 Fixes for PHP 5.5. The recipe now requires PmWiki 2.2.58 or more recent.
- 20081124 Fixed a bug which cleared the datapage history.
- 20080710 Changed javascript search location from
$PubDirUrl
to$FarmPubDirUrl
(suggested by chr). - 20080615a Changed the tag list to filter tasks on double-click and not on single left-click.
- 20080615 Larger command line by default, added
clines=
, modified layout and CSS, added "%
" command line. - 20080614 First public release.
See Also
- Getting Things Done
- Categories GTD PIM contain other possibly useful or competing recipes.
- Wikipedia:GTD
- Articles about smarter uses of such a system (google search)
Author
This program is written for PmWiki by Petko.
Comments
Please add your comments at GTD-TLM-Talk.
User notes +1 -1: If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.