Skip to main content.
Navigation:
DENX
>
TWiki
>
ActionTrackerPlugin
Translations:
Edit
|
Attach
|
Raw
|
Ref-By
|
Printable
|
More
TWiki
Sections of this site:
DENX Home
|
DULG
|
ELDK-5
|
Know
|
Training
|
U-Boot
|
U-Bootdoc
Topics
TWiki Home
Welcome
Register
Changes
Topics
Index
Search
Go
List of pages in TWiki
Search
---+! Action Tracker Plugin This plugin provides support for action tracking and notification in meeting minutes. It can also be used for private reminders, for example TODO lists and diary entries. _( Discussion in TWiki:Plugins/ActionTrackerPluginDev )_ %TOC% ---++ Features * Action tags may be added to TWiki topics that will be displayed formatted in-line. * Actions in a web can also be listed using searches. * A script is provided for automatic action notification. * Actions can be assigned to individuals, or to predefined groups of individuals. * Fully configurable. --- ---++ Syntax Rules ---+++ Actions Write the command =%<nop>ACTION{= _attributes_ =}%= anywhere in a TWiki topic. All the text following the final % up to the next end-of-line is taken as the action description (i.e. you can only have one action per line). Standard attributes are | *Name* | *Value* | *Description* | | =who= | See [[#PeopleAnchor][People]] | The person or team responsible for completing the action. %GREEN% Auto-completed, current user %ENDCOLOR% | | =due= | See [[#DateFormats][Date Formats]] | The due date %GREEN% Auto-completed, today %ENDCOLOR% | | =state= | =open= or =closed= | Set to =open= if the action is still open; set to =closed= if the action is closed. To extend the state set, see [[#NonStandardAttributes][Non-standard attributes]]. %GREEN% Auto-completed, open %ENDCOLOR% | | =notify= | See [[#PeopleAnchor][People]] | wikinames, or e-mail addresses, of people to notify when the action changes. See [[#NotiFication][Notification]] for details on action notification. | | =creator= | See [[#PeopleAnchor][People]] | Who created the action. %GREEN% Auto-completed, current user %ENDCOLOR% | | =created= | See [[#DateFormats][Date Formats]] | Date the action was created. %GREEN% Auto-completed, today %ENDCOLOR% | | =closer= | See [[#PeopleAnchor][People]] | Who closed the action. %GREEN% Auto-completed if state="closed", current user%ENDCOLOR% | | =closed= | See [[#DateFormats][Date Formats]] | Date the action was closed, if ever. %GREEN% Auto-completed if state="closed", today%ENDCOLOR% | | =uid= | 6 digit number | Unique ID of the action. See [[#UiDs][UIDs]]. %GREEN% Auto-completed, calculated %ENDCOLOR% | For example, <pre> %<nop>ACTION{ who="TWikiGuest" due="2 Jan 2004" state="open" notify="AttillaTheHun" }% An action for TWikiGuest </pre> The fields marked %GREEN% Auto-completed %ENDCOLOR% are automatically filled in, if they are missing, whenever someone saves the topic containing the action. The %GREEN% default values %ENDCOLOR% are as indicated in the table. You can override this behaviour by providing values for any of these attributes when you type the action. __Note:__ you are __not__ recommended to provide a value for the =uid= (see [[#UiDs][UIDs]]) field! If the action description doesn't all fit on one line you can use shell-style here-document syntax to grab the next few lines. For example, <pre> %<nop>ACTION{ who="LittleOysters" due="2 Jan 1884" state="open" }% <<EOF The time has come, the walrus said, To speak of many things. Of shoes, and ships, and sealing wax, Of cabbages and kings. EOF </pre> The delimiter must be a sequence of alphanumeric characters, and the closing delimiter must be on a line of its own. #DateFormats ---++++ Date formats Date formats must be as recognised by =Time::Parse<nop>Date=. The following absolute date formats are recognised. Dates containing spaces must be enclosed in double-quotes. * Dow, dd Month yy * Dow, dd Month yyyy * Dow, dd Month * dd Month yy * dd Month yyyy * Month day{st,nd,rd,th}, year * Month dd yyyy * yyyy/mm/dd * yyyy/mm * mm/dd/yy * mm/dd/yyyy * mm/yy * yy/mm (only if year > 12) * yy/mm/dd (only if year > 12 and day < 32) You are *strongly* recommended never to use the 'mm/dd/yyyy or mm/dd/yyyy' formats, to avoid confusing users in Europe (like me). #PeopleAnchor ---++++ People People are identified to the action tracker using a wikiname (e.g. =Main.WilliamWallace= or simply =WilliamWallace=) or an e-mail address (e.g. =a_einstein@<nop>pto.co.ch=). The e-mail address is useful if you want to notify people who aren't registered in the wiki, but bear in mind that if they are outside your firewall, they'll get action notifications but the chances are they won't be able to edit pages and close actions. _Very_ annoying! E-mail addresses of people are found by the process [[#TranslatingNamesToEMailAddresses][described below]]. You can also use the shorthand =me= for the currently logged-in user (this is =TWiki<nop>Guest= unless you have been prompted for a username and password). In actions, this will automatically be expanded when the topic is saved, and in searches it will match the currently logged in user. ---+++++ Groups You can assign an action to a group defined using a TWiki group topic (see %TWIKIWEB%.TWikiDocumentation). Alternatively you can give a list of people as the value of the attribute. For example, <pre> %ACTION<nop>{who=TWikiAdminGroup ...}% %ACTION<nop>{who="KnutHaraldsen,MagnusMagnusson" ...}% </pre> __Note__ in general you should *not* use these mechanisms for assigning actions, because the actions so created are not specific. Actions should be assigned to one person only, so that it's clear who is responsible for them. #UiDs ---++++ UIDs Each action is assigned a Unique Identifier (UID) when it is created. This UID is a six-digit number, and is generated when the action is first saved by incrementing a number in a special file (<code>data/atUidReg</code> under the TWiki installation). If this file is accidentally deleted, or is not writable, then you will have problems and you may get duplicate UIDs. Normally this won't matter a hoot, as UIDs only _have_ to be unique within a single topic, but if you are using UIDs for something else you will need to take care. ---+++ Action searches Write the command =%<nop>ACTIONSEARCH{= _attributes_ =}%= anywhere in a TWiki topic. Standard attributes are | *Name* | *Value* | *Description* | | =who= | See [[#PeopleAnchor][People]] | Person responsible for closing the action. | | =notify= | See [[#PeopleAnchor][People]] | Persons who want to be notified of a change | | =state= | =late=, or any legal state value | Set to =late= to search for late actions; set to any any legal state value to search for actions in that state. See [[#SettingsAnchor][Settings]] for details on how to extend the state set. | | =within= | a number of days | Search for actions that are within a number of days of their due date | | =web= | Perl regular expression | A regular expression that matches the names of all the webs to search. If this attribute is omitted, the default is to search only the current web. Searching many webs is much slower, especially in a large installation. Webs marked NOSEARCHALL will not be searched. | | =topic= | Perl regular expression | A regular expression that matches the names of all the topics to search. If this attribute is omitted, the default is to search all the topics in the selected webs. | | =due= | See [[#DateFormats][Date Formats]] | Due date for the action. | | =creator= | See [[#PeopleAnchor][People]] | Who created the action. | | =created= | See [[#DateFormats][Date Formats]] | Date the action was created. | | =closed= | See [[#DateFormats][Date Formats]] | Date the action was closed, if ever. | | =closer= | See [[#PeopleAnchor][People]] | Who closed the action. | | =uid= | 6 digit number | Unique ID of the action. | | =format= | Presentation format | See [[#CustomIsation][Formatting tables]] | | =header= | Presentation format | See [[#CustomIsation][Formatting tables]] | | =orient= | Presentation format | See [[#CustomIsation][Formatting tables]] | | =sort= | Comma-separated list of field names | Fields to sort the matched actions by. For example, <code>sort="$who,$due"</code> will sort by who first and then due. This field is optional; by default the table will be sorted by due date. | For example, <pre> %<nop>ACTIONSEARCH{ who="me" state="late" }% %<nop>ACTIONSEARCH{ who="me" open late }% %<nop>ACTIONSEARCH{ who="TWikiGuest" state="open" within="7" }% %<nop>ACTIONSEARCH{ web=".*" who="Genghis.Khan@mongol.empire.org" state="open" within="7" }% </pre> #QueryByExample ---++++ Query-by-example action search <form name="searchaction" action="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%#QueryByExample"> | Who: | <input type="text" name="qwho" value="%URLPARAM{"qwho"}%" size="20" /> | | Notify: | <input type="text" name="qnotify" value="%URLPARAM{"qnotify"}%" size="20" /> | | State: | <select name="qstate"> <option>%URLPARAM{"qstate"}%</option> <option>open</option> <option>late</option> <option>closed</option> <option></option> </select> | | Within: | <input type="text" name="qwithin" value="%URLPARAM{"qwithin"}%" size="3" /> days | | Web: | <input type="text" name="qweb" value="%URLPARAM{"qweb"}%" size="20" /> | | Topic: | <input type="text" name="qtopic" value="%URLPARAM{"qtopic"}%" size="20" /> | | | <input type="submit" value="Go" /> | </form> Result: %ACTIONSEARCH{ who="%URLPARAM{"qwho"}%" notify="%URLPARAM{"qnotify"}%" state="%URLPARAM{"qstate"}%" within="%URLPARAM{"qwithin"}%" web="%URLPARAM{"qweb"}%" topic="%URLPARAM{"qtopic"}%" }% --- #NotiFication ---++ Notification %TOPIC% comes with a notifier script, like the =mailnotify= script used for WebNotify (see TWiki.MonitoringSiteActivity for more information on setting up mailnotify). This script allows you to: * examine all the actions in all webs (except those specified NOSEARCHALL) and notify owners of the state of actions, * find actions that have changed state, and notify people who have registered an interest in that action. The frequency with which actions are notified depends on how you set up your cron (or equivalent) jobs on the server. The =actionnotify= script interprets its parameters as a search expression of the same type as that used in %<nop>ACTIONSEARCH%. All actions which match that expression will be notified to their owners. For example, you could set up the cron jobs as follows: <pre> 0 * * * * /home/twiki/bin/actionnotify "state=\"late\"" 0 8,16 * * * /home/twiki/bin/actionnotify "state=\"open\" within=\"3\"" 0 0 * * * /home/twiki/bin/actionnotify "state=\"open\" within=\"7\" 0 0 * * 1 /home/twiki/bin/actionnotify "state=\"open\" within=\"30\" </pre> (If you don't know cron, the first 5 fields are minute, hour, day of month, month and day of week. * means 'every'). This crontab will notify actions according to the schedule: 1 Actions that are late will be notified every hour, on the hour 2 Actions that are still open within three days of their due date will be notified twice a day, at 8am and 4pm 3 Actions that are still open within seven days of their due date will be notified once a day, at midnight. 4 Actions that are still open within thirty days of their due date will be notified once a week, at midnight on monday. A rather aggressive schedule! __Note:__ At Wind River they notify folks three times a week on Mon, Wed and Fri for open action items due within 8 days. Crontab entry for geeks:<font size="-2"><pre> 0 0 * * 1,3,5 (cd /twiki1/httpd/twiki-bin; ./actionnotify state=open within=8 'web=<nop>[CEIMPSW].*' > /twiki1/httpd/htdocs/pub/actionnotify.txt 2>&1) </pre></font> You can configure the fields which are scanned to detect state changes; see [[#SettingsNotify][Settings]]. #TranslatingNamesToEMailAddresses ---+++ Translating names to e-mail addresses The wikiname of the user to be notified is translated to a mail address according to the following rules: * If the user has a personal page, and that personal page contains a line or lines matching<br /> _spaces_ * Email: _email address_ <br /> or<br /> _spaces_ * E-mail: _email address_ <br /> Alternatively if the topic is a group definition (the name ends in 'Group') then the line<br /> _spaces_ * Set GROUP =<br /> is used to determine the wikinames of the people in the group. These are resolved to email addresses recursively. If that fails, * If they appear in *any* WebNotify in *any* web, in the form of a line that gives an email address, then that address is used. * If this fails and the 'who' name is a valid e-mail address, for example person@domain.co.uk, then that name is used. __Note:__ If a name cannot be translated to an e-mail address using the mechanisms described above, a warning will be output to =data/warning.txt=.. The =actionnotify= script is also used to notify users who have registered an interest in being notified when an action changes. This function of the script is activated when you use the =changedsince= parameter. =changedsince= is used to specify the time period within which changed actions are interesting. Any action which has changed in the given period will be notified to all users who have registered an interest in that action using =notify=. The =changedsince= value is a relative date string, which uses the following formats * =yesterday= * =last= _dow_ * =last week= * =now= - _count_ _units_ * <code>-</code> _count_ _units_ * _count_ _units_ =ago= where _units_ may be minutes, days, hours, weeks, months or even years. _count_ is just an integer. _dow_ is the name of a day of the week. For example: <pre> changedsince="last monday" changedsince="now - 3 days" changedsince="- 36 hours" changedsince="3 days ago" </pre> Obviously you have to be careful to synchronise your =changedsince= expression with the activation of your cron job. The ideal is to specify the same delta as the gap between cron activations. For example, <pre> 0 0 * * * /home/twiki/bin/actionnotify 'web="News" changedsince="yesterday"' </pre> will notify registered users of action changes that occurred in the last 24 hours. Note the use of single quotes to prevent expansion in the shell. __Notes:__ 1 Not all action changes get notified, only changes to certain sensitive fields. You can change the set of fields that are sensitive to changes by setting the NOTIFYCHANGES parameter, as described in [[#SettingsAnchor][Settings]], below. 1 Unlike all other search terms, =changedsince= works as an OR term rather than an AND term. If you use a compound expression like <code>late,changedsince=yesterday</code>, this will *not* give you all late actions that changed since yesterday. Instead, it will give you all late actions *and* all actions that changed since yesterday. 1 If you give the parameter DEBUG to the actionnotify script, it will print out the mails that would have been sent to STDOUT. This is useful for debugging, and may be useful if you have some other processing in mind (such as piping to an alternative mail program). --- #CustomIsation ---++ Customisation ---+++ Formatting search tables The =header=, =format= and =orient= parameters of =%<nop>ACTIONSEARCH{}%= support formatting of the action table using a similar syntax to that described in %TWIKIWEB%.FormattedSearch. For example: <pre> %<nop>ACTIONSEARCH{ web="Directors" state="open" format="|$who|$text|$edit|" header="|Director|Films||" orient="rows" }% </pre> | *Name:* | *Expands To:* | | =$who= | Who is responsible for the action | | =$due= | When the action is due | | =$state= | Current state of the action (see also note below) | | =$notify= | Who to notify when the action state changes | | =$closed= | When the action was closed, and who closed it | | =$creator= | Who created the action | | =$created= | When the action was created | | =$edit= | A link to the action editor for this action | | =$uid= | Unique identifier for the action | | =$web= | Name of the web containing the action | | =$topic= | Topic name containing the action | | =$text= | Formatted action text | | =$n= or =$n()= | New line | | =$nop= or =$nop()= | Is a "no operation". This variable gets removed. | | =$quot= | Double quote (="=). | | =$percnt= | Percent sign (=%=) | | =$dollar= | Dollar sign (=$=) | A default format for actions and action search results can be defined in this topic or the Web<nop>Preferences topic of the current web. See [[#SettingsAnchor][Settings]] for more details. #NonStandardAttributes ---+++ Non-standard Attributes As well as the standard attributes you can add non-standard attributes to actions, and use them in searches. For example: <pre> %<nop>ACTION{ who="EmperorHadrian" due="1 Jan 0053" state="closed" legion="7th" cohort="6th" maniple="3rd" }% Build a wall to keep the Scots out of England </pre> Non-standard attributes must be lower-case words. The following names may not be used for non-standard attributes: =closed=, =closer=, =created=, =creator=, =dollar=, =due=, =edit=, =format=, =header=, =late=, =n=, =nop=, =notify=, =percnt=, =quot=, =sort=, =state=, =text=, =topic=, =uid=, =web=, =who=, =within=. To define non-standard attributes you need to set the value of EXTRAS in this topic (or to the Web<nop>Preferences topic of each web) - see [[#SettingsAnchor][Settings]] below. All attributes must be given a type, which is used by the formatter, the search engine and the action editor. For example, <pre> * <nop>Set EXTRAS = |plaintiffs,names,16|decision,text,16|sentencing,date|sentence,select,"life","5 years","community service"| </pre> The following types are supported: | *Type* | *Format* | *Description* | | =select= | select, <i>size</i>, "option 1", "option 2", ... | Can take one of the string values option1, option2,.... etc. | | =names= | names, <i>size</i> | One or more wikinames or e-mail addresses. | | =text= | text, <i>size</i> | An arbitrary text field | | =date= | date, <i>size</i> | A date in one of the formats described above. See [[#DateFormats][Date Formats]] | In the above, <i>size</i> is a single number, which is the width (in characters) of the text box in the action editor for =text=, =names= and =date=, and the number of options to show in =select=.. __Note__ that there is one exception to the "no redefinition" rule above; the =state= attribute can be extended to take extra states. However if you want the closure functionality (closed, closer, and late actions) to work, the =closed= state must be retained. To extend the set of states, simply include a definition of =state= in the EXTRAS definition: <pre> * <nop>Set EXTRAS = |state,select,1,"open","fried","boiled","poached","closed"| </pre> ---+++ Searching for non-standard attributes You can of course search for values of non-standard attributes. For example: <pre> %<nop>ACTIONSEARCH{ sentence="life" }% </pre> If a non-standard attribute is declared as type =text= you can use perl regular expressions in the search. Searches for values of type =names= will match any-to-any. For example, <pre> %<nop>ACTIONSEARCH{ car="VolkswagenBeetle,MercedesCoupe" }% </pre> will match both of the following actions: <pre> %<nop>ACTION{ car="VolkswagenBeetle,AudiSport" ... }% %<nop>ACTION{ car="ToyotaSupra,MercedesCoupe,ColtLancer" ... }% </pre> --- #SettingsAnchor ---++ <nop>%TOPIC% Settings These settings can be overridden in the Web<nop>Preferences topic of the current web (by defining ACTIONTRACKERPLUGIN_TABLEHEADER or ACTIONTRACKERPLUGIN_TABLEFORMAT etc). * Set to 1 to enable debug features, including the undocumented =%<nop>ACTIONNOTIFICATIONS{}%= and =%<nop>ACTIONTRACKERPREFS%= features. * Set DEBUG = 0 * One line description, shown in the TextFormattingRules topic * Set SHORTDESCRIPTION = Adds support for action tags in topics, and automatic notification of action statii * The format of an action output. The following fields can be output: web, topic, text, who, due, notify, uid, creator, state, edit, and any EXTRAS you may have. These settings can be overridden in an ACTIONSEARCH command using the =format= and =header= attributes. * TABLEHEADER defines the column headings. * Set TABLEHEADER = | Assigned to | Due date | Description | State | Notify || * TABLEFORMAT defines the contents of the columns * Set TABLEFORMAT = | $who | $due | $text | $state | $notify | $edit | * If TABLEORIENT is set to "rows", action tables will be aligned as rows of values instead of the default columns of values. * Set TABLEORIENT = cols * The alternative text format of an action, used when mailing action or change notifications. * Set TEXTFORMAT = Action for $who, due $due, $state$n$text$n * Set the colours for late actions, errors and the table headers. Accepts standard HTML colours. * Set LATECOL = yellow * Set BADDATECOL = red * Set HEADERCOL = orange * The format of the action editor. You can also set EDITBOXWIDTH and EDITBOXHEIGHT to override the defaults (which are %EDITBOXWIDTH%x%EDITBOXHEIGHT%) just for the action editor. * Set EDITHEADER = | Assigned to | Due date | State | Notify | * Set EDITFORMAT = | $who | $due | $state | $notify | * Set EDITORIENT = cols * If set to 1 will edit an action in a separate browser window (requires <nop>JavaScript) * Set USENEWWINDOW = 1 * If set to 1, action edits will offer a 'Save Changes' instead of the usual 'Preview Changes' button. If this is set along with the USENEWWINDOW parameter, the subwindow _should_ close on save, but it won't because I haven't worked out how to do this safely in Java<nop>Script. * Set NOPREVIEW = 1 #SettingsNotify * The fields to scan to detect changes for actionnotify. Changes in other fields are ignored. * Set NOTIFYCHANGES = $due,$state,$text * Non-standard attributes - see [[#NonStandardAttributes][Non-standard attributes]] above. * Set EXTRAS = --- ---++ Plugin Installation Instructions __Note:__ These instructions are for the TWiki maintainer. No changes to your browser are required. *This plugin makes extensive use of new features added to TWiki in the Feb 2003 release*. Earlier versions lack all the features described here. Make sure you install using the zip appropriate to your TWiki installation. If you install an earlier version of the plugin with the Feb 2003 release, note that change notification will not function correctly. * Make sure you have Time::ParseDate installed in your perl installation (available from www.cpan.org) * Download the ZIP file from the Plugin web (see below). Contents: | *File:* | *Description:* | | ==%TOPIC%.xml== | Ant build file | | ==data/TWiki/%TOPIC%.txt== | Plugin topic | | ==bin/actionnotify== | Mailer script | | ==templates/actionnotify.tmpl== | Page template for notify message | | ==templates/edit.action.tmpl== | Action editor page template | | ==templates/actionform.tmpl== | Action editor page subtemplate | | ==lib/TWiki/Plugins/%TOPIC%.pm== | Plugin Perl module | | ==lib/TWiki/Plugins/%TOPIC%/Action.pm== | Perl support module | | ==lib/TWiki/Plugins/%TOPIC%/ActionNotify.pm== | Perl support module | | ==lib/TWiki/Plugins/%TOPIC%/ActionSet.pm== | Perl support module | | ==lib/TWiki/Plugins/%TOPIC%/Attrs.pm== | Perl support module | | ==lib/TWiki/Plugins/%TOPIC%/AttrDef.pm== | Perl support module | | ==lib/TWiki/Plugins/%TOPIC%/Config.pm== | Configuration module | | ==lib/TWiki/Plugins/%TOPIC%/Format.pm== | Perl support module | | ==lib/TWiki/Plugins/%TOPIC%/test.zip== | Test scripts | * Unzip ==%TOPIC%.zip== in your twiki installation directory. * Add ==Plugins.%TOPIC%== to the ==INSTALLEDPLUGINS== variable in %TWIKIWEB%.TWikiPreferences (or any WebPreferences topic). * Configure lib/TWiki/Plugins/ActionTrackerPlugin/Config.pm appropriately for your installation. Several of the configuration items are the same as in lib/TWiki.cfg - you can copy your local values from there if you're not sure what you're doing. * If the plugin is installed and enabled correctly you should see a formatted action below: %ACTION{who=TWikiGuest,due="1 Jan 2003",open}% Example action * ... and the result of a formatted search below: %ACTIONSEARCH{topic=%TOPIC% who=TWikiGuest header="|Who|Due|State|Description|" format="| $who |$due|$state|$text|" orient="rows" }% ---+++ Upgrade notes Earlier versions of this plugin installed a number of files that are no longer required. Relative to the root of the TWiki installation these are: | *File* | *What's happened* | | data/Plugins/ActionTrackerPlugin.txt | Moved to data/TWiki | | templates/actionchangenotify.tmpl | Merged with actionnotify.tmpl | | bin/editaction | Merged into plugin code, using hooks added in Feb 2003 TWiki release | | bin/previewaction | Merged into plugin code, using hooks added in Feb 2003 TWiki release | The mechanism for defining notification groups as lists of "EMail" lines in a topic in Main is no longer supported. Please upgrade to the mechanism described herein. --- ---++ %RED%Known Issues%ENDCOLOR% ---+++ Use of unpublished functions The following unpublished TWiki core functions are used: <pre> TWiki::initialize() TWiki::getGmDate() TWiki::getTWikiLibDir() TWiki::Net::sendEmail() </pre> ---+++ Corruption of action items with Mozilla browser *OLD* - may be fixed. Action lines are joined together if edited by a Mozilla browser, resulting in an odd display. * Work-around: Edit the topic ("Edit" at the bottom of the page, not the "edit" of the ActionTrackerPlugin) and add a new line to the =%<nop>ACTION{...}%=. Basically, each =%<nop>ACTION{...}%= needs to be on its own line. ---+++ Behaviour of egrep The output of the =$egrepCmd= in TWiki.cfg (with no switches) must be of the form: <pre> filename.txt: ...matched text... </pre> While this is true for all UNIX grep implementations, it may be a potential issue for other operating systems. --- ---++ Plugin Info | Plugin Author: | TWiki:Main/CrawfordCurrie | | Plugin Version: | 2.0 | | Change History: | 4 Jan 2002: Initial version | | | 9 Jan 2002: Bugfix version | | | 11 Jan 2002: Added ACTIONSEARCH for selected webs and topics; Changed action editor to use a template; Eliminated UNIX dependencies; Fixed formatting of actions in bulleted lists | | | 14 Feb 2002: Sorted ACTIONSEARCH results by due date; Fixed bugs editaction kills form data, Actions flagged as late the day before, TWiki table and bullet formatting doesn't work within action text | | | 26 Sep 2002: Added changedsince notify support, added support for editing in a seperate window, incorporated attribute syntax corrections contributed by Main.PeterThoeny, sorted ACTIONSEARCH output and action notifications | | | 30 Jan 2003: Query-by-example action search with notify field; notfication of change emails and actions email are sent as one; notify field was added to topic view and edit; various bug fixes by TWiki:Main/PaulineCheung | | | 30 Apr 2003: Version 2.0; Large sections rewritten to take advantage of improvements in Plugin support, eliminating two scripts in bin. Added UIDs and formattable action searches | | | 21 May 2003: Non-standard fields. Configurability of tables and action editor. Non-standard attributes. Eliminated chdir. Multi-line actions. Optimisation of notifies. | | CPAN Dependencies: | Time::ParseDate | | Perl Version: | 5.0 | | Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% | | Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev | __Related Topics:__ %TWIKIWEB%.TWikiPreferences, %TWIKIWEB%.TWikiPlugins ---+++ Further development Further development of this code is welcomed. It is recommended that you unpack the distribution into a development directory and use the supplied Ant (http://jakarta.apache.org) build file which provides targets to run the test suite, and install and uninstall your development code into a test installation. Please, please, _please_ run, and extend if necessary, the test set! Some ideas: 1 Make the _go to action_ link in action text a button image. 1 Fix the "close subwindow on save" functionality. See ActionTrackerPlugin.pm, search for <code>$submitScript</code>. 1 Generalise the search to support =within= and =late= style searches on all date fields, including non-standard ones. 1 A really brave soul might consider moving action change notification to where it belongs; in the beforeSaveHandler. 1 You could turn this into a full-blooded issue tracker by constraining state transitions. 1 Make it work for a PC server Developer discussion is in TWiki:Plugins/ActionTrackerPluginDev. ---+++ Copyright This code is a development of Motorola Inc. and is protected by the following copyrights: * Copyright (C) 2002-2003 Motorola. All Rights Reserved. ---+++ License As required for the publication of all extensions to TWiki, this software is published under the terms of the GNU General Public License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details, published at http://www.gnu.org/copyleft/gpl.html