Summary: A simple fast GTD task/todo list manager
Version: 20080710
Prerequisites: PmWiki 2.2.0-beta12 or newer
Status: Awaiting feedback
Description
A simple fast 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.
Preview / Test / Demo.
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
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; }
In addition to the GNU GPL v.3, this recipe is Postcardware. If you like it or use it, please send me a postcard (info).
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
Terminology:
- "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
- 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
Author
This program is written for PmWiki by Petko.
Comments
Please add your comments at GTD-TLM-Talk.