Skip to content

Commit

Permalink
Item12119: Initial checkin of TaskManagementContrib
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.foswiki.org/trunk/TaskManagementContrib@15512 0b4bb1d4-4e5a-0410-9cc4-b2b747904278
  • Loading branch information
AlexisHazell authored and AlexisHazell committed Oct 5, 2012
0 parents commit 3950d86
Show file tree
Hide file tree
Showing 28 changed files with 1,456 additions and 0 deletions.
36 changes: 36 additions & 0 deletions data/System/TaskManagementContrib.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!--
One line description, required for extensions repository catalog.
* Set SHORTDESCRIPTION = A simple Task Management System Wiki App.
-->
---+!! TaskManagementContrib

%SHORTDESCRIPTION%

%TOC%

---++ Features

* Create tasks and subtasks.
* Specify task deadline, priority, task lead, current status and more.
* Assign one or more tags to tasks.
* Additionally specify particular tasks as being available to volunteers from the general public.
* Filter and sort tasks by various criteria, including task lead, task assistants, tags, deadline and priority.
* UI designed with smartphones in mind.
* Easily modify presentation of particular UI components via CSS.

---++ Installation

After installation, information about setup and use can be found in TMS.TMSAdministratorHelp and TMS.TMSUserHelp.

---++ Info

| Author: | AlexisHazell |
| Copyright &copy;: | Alexis Hazell |
| License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) |
| Dependencies: | http://foswiki.org/Extensions/FilterPlugin, http://foswiki.org/Extensions/JQueryPlugin, http://foswiki.org/Extensions/RenderPlugin, http://foswiki.org/Extensions/SetVariablePlugin, http://foswiki.org/Extensions/TwistyPlugin |
| Version: | 0.1.0 |
| Change History: | 0.1.0 (05 Oct 2012) |
| 0.1.0 (05 Oct 2012): | Initial version |
| Home: | http://foswiki.org/Extensions/%TOPIC% |
| Support: | http://foswiki.org/Support/%TOPIC% |

51 changes: 51 additions & 0 deletions data/TMS/PublicTasksAvailable.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
%META:TOPICPARENT{name="WebHome"}%
%ADDTOZONE{
"head"
topic="%TMSWEBNAME%.PublicTasksAvailableCSS"
}%<!--
* Set VIEW_TEMPLATE = PublicTasksAvailableView
* Set ALLOWTOPICVIEW = WikiGuest
* Set ALLOWTOPICCHANGE = AdminGroup
* Set ALLOWTOPICRENAME = AdminGroup
-->
<div id="IntroText">
<p>[ Currently displaying %IF{"defined tag" then="tasks tagged '%URLPARAM{"tag"}%'" else="all available tasks"}%. ]</p>
<br />
</div>
<div id="Filter">
<span class="label">Filter tasks by tag: </span>
<form action="http://gendercentre.com/foswiki/bin/view/%TMSWEBNAME%/PublicTasksAvailable" method="get">
<select id="TagsFilter" class="filter" name="tag">
<option value="*">Any</option>
%FORMATLIST{"%SEARCH{"name ~ 'TaskID*'" type="query" web="%TMSWEBNAME%" nonoise="on" separator="," format="$formfield(Tags)" }%"
unique="on"
sort="alpha"
separator="%BR%"
format=" <option class='foswikiOption' value='$1'>$1</option>"
}%
</select>
<input type="submit" value="Go" />
</form>
</div>

<div id="TaskList">
%SEARCH{
"name~'TaskID*' AND Visibility='Public' AND fields[name=\"Tags\"].value~%IF{"defined tag" then="'*%URLPARAM{"tag"}%*'" else="'*'"}%"
web="%TMSWEBNAME%"
type="query"
order="formfield(Priority)"
nonoise="on"
zeroresults="No matching tasks were found."
format="<hr>
<span class='tasksummary'>$formfield(Summary)</span><br />
<span class='label'>Priority:</span> $formfield(Priority)<br />
<span class='label'>Tags</span>: $formfield(Tags)<br />
$percentTWISTY{showlink=$quotMore info$quot hidelink=$quotLess info$quot showimgleft=$quot$percentICONURLPATH{toggleopen-small}$percent$quot hideimgleft=$quot$percentICONURLPATH{toggleclose-small}$percent$quot}$percent
<span class='label'>Details:</span> $formfield(Details)<br />
<span class='label'>Contact:</span> $formfield(Contact)<br />
$percentENDTWISTY$percent"
}%
</div>
---

%META:PREFERENCE{name="SKIN" title="SKIN" type="Set" value="PlainSkin"}%
38 changes: 38 additions & 0 deletions data/TMS/PublicTasksAvailableCSS.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
%META:TOPICPARENT{name="PublicTasksAvailable"}%
<!--
* Set ALLOWTOPICVIEW = WikiGuest
* Set ALLOWTOPICCHANGE = AdminGroup
* Set ALLOWTOPICRENAME = AdminGroup
-->
<style type="text/css">
div#Filter {
color: #373737;
font-family: 'Trebuchet MS', Arial, Helvetica;
font-size: 12px;
font-style: normal;
font-variant: normal;
font-weight: normal;
}
div#IntroText {
color: #373737;
font-family: 'Trebuchet MS', Arial, Helvetica;
font-size: 12px;
font-style: normal;
font-variant: normal;
font-weight: normal;
}
div#TaskList {
color: #373737;
font-family: 'Trebuchet MS', Arial, Helvetica;
font-size: 12px;
font-style: normal;
font-variant: normal;
font-weight: normal;
}
span.label {
font-style: italic;
}
span.tasksummary{
font-weight: bold;
}
</style>
5 changes: 5 additions & 0 deletions data/TMS/PublicTasksAvailableViewTemplate.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
%META:TOPICPARENT{name="PublicTasksAvailable"}%
<!--
* Set ALLOWTOPICVIEW = WikiGuest
-->
%TMPL:INCLUDE{"view.plain"}%
23 changes: 23 additions & 0 deletions data/TMS/TMSAdministratorHelp.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---+!! %SPACEOUT{"%TOPIC%"}%

%TOC%

---++ Introduction

TMS administrators should begin by reading the TMSDesignDecisions document, followed by the TMSKnownIssues document.

---++ Setup and configuration

Administrators need to:

1. Add a preference in !Main.SitePreferences specifying the name of the TMS web (which upon installation is 'TMS'). If you rename the TMS web (e.g. to 'Tasks'), this setting must be changed accordingly.
<verbatim>Set TMSWEBNAME = TMS</verbatim>
1. Add a preference in !Main.SitePreferences specifying a default set of tags available for TMS tasks. Each tag must consist of lower-case alphanumeric characters, with no in-tag spaces; tags must be separated by a comma, optionally followed by a space character. This can be left empty if no default set is required.
<verbatim>Set TMSDEFAULTTAGS = </verbatim>
1. Create a !WikiGroup called 'TMSUsersGroup'. Members of this group will be listed in the 'Lead' and 'Assistants' drop-downs on the Task Details page, so members need to be added accordingly.

A "public tasks" interface, suitable for including in non-Foswiki pages via e.g. an IFRAME HTML tag, is provided via the PublicTasksAvailable page. The style of this page can be customised via the PublicTasksAvailableCSS topic.

---++ General usage notes

Each 'task' is assigned its own topic page, with a title generated by Foswiki's AUTOINC numbering system. Consequently, deleting a task topic makes the task ID number available again for new tasks. Given the potential confusion that could result from this, task topic deletion functionality has not been made directly available to end-users. Instead, Foswiki administrators must visit the relevant task topic via e.g. WebTopicList and delete the topic via the standard Foswiki process.
12 changes: 12 additions & 0 deletions data/TMS/TMSDesignDecisions.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
%META:TOPICPARENT{name="WebHome"}%
---+ %SPACEOUT{"%TOPIC%"}%

* The TMS makes use of skin templates rather than !ViewTemplates in certain places in order to avoid !ViewTemplates becoming the parent task topic of subtask topics.
* The Task List only displays a restricted number of fields from each task in order to minimise space usage and keep the list more smartphone-friendly.
* The TMS has no 'Category' field as well as 'Tags' field, to avoid end-user confusion between classifying via 'Category' in addition to via 'Tags'. Further, categories would force tasks into a fixed ontology; tags avoid this.
* The 'Deadline' and 'InitiatedOn' fields require dates in yyyy.mm.dd.23.59 format to ease date sorting, and to be compatible with date formats accepted by Foswiki 1.1.4 forms.
* No validation check is performed on the 'Deadline' field, so that users do not have to keep modifying the deadline to a later date should a task not be completed by the original deadline.
* No validation check is performed on the 'InitiatedOn' field, to allow for the possibility of the task having been initiated prior to the day the task was first entered into the TMS.
* The 'InitiatedBy' field is freeform text, rather than drawing on !WikiNames, to allow for the possibility of non-wiki users having initiated tasks.
* Task tags can only consist of lower-case alphanumerics, without spaces, in order to avoid creation of semantically similar tags that are seen as distinct by the system. For example: to avoiding creation of a series of tags like 'QuickTask', 'quick Task', 'Quick task' etc.
* !PublicTasksAvailable doesn't use AJAX for filtering functionality, as doing so would require the 'rest' script to be made available to unauthenticated users, possibly creating security vulnerabilities.
15 changes: 15 additions & 0 deletions data/TMS/TMSDevelopmentCredits.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
%META:TOPICPARENT{name="WebHome"}%
---+ %SPACEOUT{"%TOPIC%"}%

This Task Management System has been developed by Alexis Hazell. Responsibility for any issues regarding design and implementation rests solely with her.

Many thanks to:

* Tom Cho, for his testing work, and for providing feedback regarding functionality and UI.
* Several Foswiki developers, who provided invaluable assistance with various technical issues:
* George Clark
* Crawford Currie
* Sven Dowideit
* Paul Harvey
* Olivier Raginel
* Zoe Belle Gender Centre, for contributing funding towards the system's development.
13 changes: 13 additions & 0 deletions data/TMS/TMSKnownIssues.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
%META:TOPICPARENT{name="WebHome"}%
---+ %SPACEOUT{"%TOPIC%"}%

The following are known issues with [[%TMSWEBNAME%.TaskList][the Task Management System]]:

---++ Visual issues

* On 'PublicTasksAvailable' page, selecting "More info" for a task display at the bottom of the browser window does not reposition the task so that all task particulars are visible.
* Should be able to view a hierarchical tree of tasks, sub-tasks, sub-sub-tasks etc.

---++ Behavioural issues

* Datepicker widget is occasionally not available on the 'Deadline' field on the Task Details page. Forcing the browser to refresh the page can fix the problem.
73 changes: 73 additions & 0 deletions data/TMS/TMSUserHelp.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
%META:TOPICPARENT{name="WebHome"}%
%ADDTOZONE{
"head"
text="
<style type='text/css'>
p.note {
background: #f5f5f5;
border-bottom: solid 1px #dddddd;
border-top: solid 1px #dddddd;
margin-left: 0;
margin-right: 0;
padding-bottom: 1ex;
padding-left: 2ex;
padding-right: 2ex;
padding-top: 1ex;
}
</style>
"
}%
---+!! %SPACEOUT{"%TOPIC%"}%

<p class="note">%ICON{"warning"}% Users and administrators need to read TMSKnownIssues before using the system. Administrators need to read TMSAdministratorHelp before making the system available to users.</p>

%TOC%

This Task Management System ("TMS") provides basic functionality for tracking tasks.

---++ The Task List

The central page in the TMS is the TaskList. You use this page to view and sort (that is, 'filter') tasks in various ways (for example, displaying only completed tasks, or sorting tasks by their deadline). To filter tasks:
* open the "%ICON{"toggleopen-small"}% Filter tasks" twisty (you do this by clicking the "%ICON{"toggleopen-small"}%" icon)
* choose your filter criteria
* click the *Go* button.

The Task List will redisplay according to your selected criteria.

---++ Creating new tasks

Any task can have one or more subtasks associated with it. The procedure for creating a top-level task is different to creating a sub-task.
---+++ Create a new top-level task

You create a new task at the TaskList page.
* Click the *Create new top-level task* button
A new page called <i>Task Details </i>&#xFEFF;appears.
* Specify the details of the new task. Extra help is available for many of the fields via a "%ICON{"toggleopen-small"}% Help" twisty
* Save or cancel any changes you make via the *Save* and *Cancel* buttons at the bottom of the _Task Details_ page
* When you save the task, the system will check the data you have entered. If there are problems with the data, a popup window will appear.

<p class="note">%ICON{"warning"}% Make sure you definitely want to create a task before saving it! Since accidentally deleting a task could create problems for system integrity, users cannot directly delete tasks (only mark a task as 'Completed'). Administrators can delete task topics if required, after reading TMSAdministratorHelp first.</p>

---+++ Create a new subtask

At the TaskList page:
* Click the task that will be the 'parent' of the sub-task you wish to create.

The _Task Details_ page for that task appears. Now you can create the sub-task of this task that you're currently viewing. To do this:
* open the "%ICON{"toggleopen-small"}% Subtasks" twisty (you do this by selecting the "%ICON{"toggleopen-small"}%" icon)
* select the *Create new subtask of this task* button.

A new _Task Details_ page will appear.
* Specify the details of the new sub-task. Extra help is available for many of the fields via a "%ICON{"toggleopen-small"}% Help" twisty
* Save or cancel any changes you make via the *Save* and *Cancel* buttons at the bottom of the _Task Details_ page.
* When you save the sub-task, the system will check the data you have entered. If there are problems with the data, a popup window will appear.

<p class="note">%ICON{"warning"}% Make sure to save any changes you've made to a task before trying to create a new subtask! Otherwise, those changes will be lost.</p>

---++ Known issues

There are a number of [[TMSKnownIssues][known issues]] with the TMS. If you encounter any further problems, please report them to your Foswiki administrator. They will pass them on to the TMS developers.

---++ Credits

Information about those who have contributed to the development of this TMS is available on the TMSDevelopmentCredits page.
Loading

0 comments on commit 3950d86

Please sign in to comment.