IssueTracker Plugin

PluginIssue Tracker
Description Easy to handle Issue Tracking system with multiple options.
Type syntax
Author Taggic
Last update 2014-12-16
DW compatible 2014-09-29a (Hrun), 2013-12-08 (Binky)
Depends captcha (if option is used)
Conflicts none
Similar dokumicrobugtracker
Issues fcon - Issue Tracker issues

Vote for this plugin

(109) (90)

Now you can vote for further features to be implemented. Please use this to provide your opinion about the value of
     new functions you want to have. Therefore visit the User Feature Ranking section.


Check if “Prevent AUTH:AD overflow” config switch of IssueTracker is turned off. This special function is usually not necessary and is changing some behaivior of the plugin (see FAQ)


Simply spoken, a user can easily report an issue for defined products. You may also use it as a little platform to discuss topics or follow up on tasks. A flexible report form is delivered to adapt it to your needs. Created Reports are added to an issue log (project). Before that they are checked if important values are complete.

The user informed by a green info box if the issue was added successfully to the log file. A box will be displayed in the event of missing information. The issue gets an unique ID and will be stored to a file. The admin is informed by mail about a new report.

The complete issue list delivers a detailed overview of the reports. The list output is sortable and can be easily reduced (column wise), to fit your needs. Most of the values displayed can be edited there. The issues can be filtered and quantity on rows can be adjusted. The upper right side deliver a little project issue status overview. If you click on the status text the list will display related issues automatically.

For security reason all HTML tags are stripped away. A small editor provides you some styling elements with own little syntax. By this xsEditor you can define some basics like text-decoration, lists, colors, links etc. for issue descriptions, comments and resolutions. First write the text and then style it is the best way to use.

The picture below give you a brief overview about the info around the comment text itself. Admin / assignees and comment creator (not necessarily the Issue reporter) are allowed to modify and delete comments within a work log. If user specific function is available can be seen by the modify Comment slider below the box and on the little delete-icon at the upper right side within the comment area. Modification info per comment displaying the date of change right hand side above the comment box.

Members of configured 'assign' groups are allowed to edit the entries of the issue list. They can see all columns by default. The issue list is sortable on all columns. The email addresses of 'assign' group members are automatically loaded into the lists select box to be easily set as issue related contact. A ticket is falling back to status New if the assignee will be deleted. It is not mandatory to assign a responsible contact for an issue.

Status Modification Log Modifications on the Issue List items are logged into a file (*.mod-log) to easily follow up who changed something and when. Such file will be created by the first modification of a list item per issue. A link will be visible on Issue Details to view the history of modifications.

Search IssueTracker provides also a search function with highlighting found matches. You can enter one to multiple words, where each will be searched for. But it is not a search engine like Google so extended search patterns and logics will not work. The result is a list of linked Issues and Comments containing one or multiple words you are looking for.

Delete Issues Due to the problems of data reliability, traceability of actions and process continuity it is not the best approach to delete issues completely. Therefore IssueTracker introduced a special status “deleted”, which is configurable of course. The elements within the Issue List may set to this status and will disappear from it also as it will not counted on statistic anymore. But it is not really deleted, just hidden. It keeps accessible if you know the ID, it reposits the modification log and all information. It will be listed only if the filter contains the status “deleted” (or the related naming you have configured for).

Image Links If you want to insert pictures into your descriptions or comments then use the Image link feature. Image have to be stored either on a symptom server or on any other freely accessible storage space to be linked successfully. Locally stored pictures uploaded via MediaManager can be linked also (more...).

The Toolbar contains an Icon, which directly links to ImageShack upload. This is just a proposal and not necessarily to be used to link images within descriptions or comments of IssueTracker. ImageShack provides free of charge space to store images up to 1.5 MB. Please read their Terms & Conditions, Policies, etc. carefully before you are using it. By using it you are leaving the IssueTracker and we expressly state not to be responsible anyhow for legal issues and policies of ImageShack. Please understand this function only as a non-committal offer and it is up to your own sole discretion to make use of it or not.

User Profile Updates Users may change their e-mail address what has a major impact on the IssueTracker. The e-Mail address given by the report of an issue is the only reliable information due to IssueTracker is working also for open wikis. Therefore IssueTracker is listening the events of UserManager. If a user e-mail address will be changed it automatically searches all issues, comments and modification logs to update them accordingly. Finally the user will be informed via summary messages above the Wiki page about modifications. The following picture is an example of these messages after a user modified its e-mail address. It is necessary that the user is doing a re-login to get full access to the own issues and comments1).

Symptom file upload IssueTracker offers an upload of symptoms on Issue Report and Issue Details view. There can be 1 file uploaded. The control is according configured DokuWiki Mime Types and file extensions. A file size limit opion can be used to reduce the threshold from php.ini setting to a lower value (just valid for the symptom file upload). A users IP can be blocked after upload for a defined time. This will reduce the risk of spam attacks.


Simply place the following syntax into the page markup:

====== Report an Issue ======
{{issuetracker>project=myProject1|product=myProduct 1.1,myProduct 1.2|display=form|prod_limit=ON}} 

====== List of Issues ======

====== Single Issue Link ======

Parameters status, severity, view, controls and display will be set to default (status = ALL, severity = ALL, view = 10, controls = ON; display = ISSUES; myissues = OFF) if they are not defined.

  • Following syntax parameter effects:
    • project              — mandatory, unique — an id to differ between the projects
    • product             — optional                 — to preselect the report user interface or filter the issue list (product to be configured too)
    • status               — optional                 — define the issues by status you want to see (comma separated)
    • severity            — optional                 — define the issues by status you want to see (comma separated)
    • display             — mandatory             — defines the use case (form or issues)
    • view                 — optional                 — defines the number of issues to be displayed at once
    • controls            — optional                 — prevents output of controls above and edit of the issue list (on or off)
    • prod_limit         — optional                — limits the product drop down select control of report to the syntax provided products
    • id                     — optional                 — syntax to display a dedicated issue id inside wiki text
    • version             — optional                 — filter the list on issues with following versions
    • component         — optional                 — filter the list on issues with following components
    • tblock               — optional                 — filter the list on test blocking issues
    • assignee            — optional                 — filter the list on issues related to following assignees
    • reporter            — optional                 — filter the list on issues related to following reporters
    • myissues           — optional                 — enables the MyIssues Filter by default
    • sort                   — optional                 — defines the column for lobal sort of all issues for output
    • columns            — optional                 — limits the issue list view for users to the specified, comma separated columns and overrules the configuration of shwtbl_usr
    • asympupl           — optional                 — one symptom upload will be allowed if ”=on” independently what is set in configuration
    • email_address     — optional                 — provide a valid mail address to ignore the same-named config and use this one


Install the plugin using the Plugin Manager and the download URL above, which points to latest version of the plugin.
Refer to Plugins on how to install plugins manually. Please take care to rename the plugin folder to ”issuetracker” in the event of manual installation.


The plugin was tested with DW 2011-05-25 “Rincewind”, DW 2012-01-25 “Angua” and also with related on the Stick version.
My standard browser is Internet Explorer 9 (IE8 tested → not working properly) due to majority of users of our intranet
installation using this. Aged browsers like IE8 are not able to use all features and may lead into inconsistent behaviour.
However, that is no guarantee that it works for all environmental configuration.

Next Release

The following issues are in test mode:

Id Created Product Version Severity Status Title

Development History

Please visit → Development History where you will find a chronological list of changes.

User Feature Ranking

The following little table shows ideas for further developments of issue tracker. Please vote them to influence their priority for implementation. Click on the links to see a few more details of the functionality. You may also use the IssueTracker Report function to raise further Feature Requests or make use of the contact form to send a description of your idea.

Show Code Modifications
The assignee provides the link to the last commit when he is changing the issue status to solved. This link will open the GitHub site to show the code changes.
 stars  from 6 votes
Release Planning
It will provide the possibility to plan releases where issues will be resolved and feature requests implemented.
     a) The Admin need an input possibility for planning data.
         → new field per issue within the issue file necessary, add-on
            to Issue ListView and Details
     b) Output of release plan and arranged issues via Syntax with parameters
        (e.g. Project, Product, Milestone/Release, etc.)
 stars  from 8 votes
Recent Ticket Modifications
Currently the IssueList can be sorted by date to see which Issue was modified last. The new functionality should provide an overview about the last issues modifications during a specific time frame (last x days/weeks/months).
     a) needs a Syntax for DW page with some parameter
        (e.g. Project, Product, Version, History of the last 5 days)
     b) Loop through all issues to evaluate modified tickets and content
     c) output of issues, their modified values
 stars  from 8 votes
Simple Reporting
some simple reporting to answer questions like:
  - How many issues of a severity for a product are currently in a specific state ?
  - What is the average time to resolve an issue during the last x days/weeks/months ?
 stars  from 8 votes
Multi-Project Handling
The IssueTracker should handle multiple project files on Issue ListView to ease the admins/assignees work.
     a) loop through the it-store and load all .issue files contents
         according filter settings
     b) optionally add a column to display the related project
     c) limit the function to admin/assignee
Thank you for rating this feature. It is now implemented since version 2013-02-18
99Feature Request: MyIssues filterThank you for rating this feature. It is now implemented since version 2012-11-08

Recent Changes


The following configurations can be done by the configuration manager: Admin ⇒ Configuration Settings ⇒ Issuetracker Plugin Settings

config item value comment
Y-m-d G:i:s
Y-m-d G:i:s any valid date format expression
IssueTracker root within data folder (”” = meta)
on/off allow symptom file uploads
1048576 limit file size for uploads in Byte (default 1MB = 1.048.576)
     1 Kilo Byte =         1.024 Byte
     1 Mega Byte = 1.048.576 Byte
on/off turn on the anti-spam feature
3 ip will be blocked for 3 minutes before another upload can be initiated
Inform by mail about new issues ?
on/off global switch for following issue details modifications
Send html email
on/off send html-mails according provided templates instead of plain text
Edits only by registered users
on/off prevent misusage
Prevent AUTH:AD overflow
on/off Default = off, turn on only if AD with huge number of users (>1.000) is connected
loop through plugin conf path and load all assignee-files
needs unique file extension like 'assignees'
file extension Default empty
Sync on user profile changes
Validate reporters e-mail address with DNS
Inform user automatically by mail about issue mod
on/off the user which created the ticket will be informed about issue modification (not that important anymore due to upper mentioned global and fine tuning switches)
following fine tuning depend on global switch: on/off → inform about new comments
on/off → inform about comment modification
on/off → inform about resolution entry
on/off → inform about resolution modification
on/off → inform about modification of initial description
plugin»issuetracker»shw_mail_addr choice → show assignee by login, name or mail address
mail address visible instead of user name
(effect only to registered users)
on/off → issue details view will display real names instead of mail address (if current user is registered)
Configure columns to be shown to user as overview
on/off per column multi select of columns to be displayed if non-admin viewing the issue list
Use captcha
on/off to prevent misuse by bots, less important for closed wikis together with option “Edits only by registered users” on)
Define severity levels you will use
(comma separated)
Query,Minor,Medium,Major, Critical,Feature Request different values to define the priority of an issue priority of an issue
(take care that there are no space characters before and after comma)
Define issue status levels you will use
(comma separated)
New,Assigned,External Pending,In Progress,Solved, Canceled,Double each Issue develops through different status levels according your work-flow
→ first value [e.g. “New”] will be taken as status for newly created reports,
→ first value [e.g. “New”] will be taken as status for reports where assignee deleted at Issue List,
→ second value [e.g. “Assigned”] will be taken as status if you assigne a report at Issue List,
→ take care that there are no space characters before and after comma
hidden issues, only single status value allowed !
(comma separated)
Define tracked products
(comma separated)
[Product1],[Product2], define products of the project to be tracked together within one file, where users can report issues
Configure list of components, empty by default
select wiki user groups pre-selected for assigning issues to
(Pipe ”|” separated)
admin|developer All registered dokuwiki users of these defined groups are allowed assignees for issues. They will be offered option within a drop-down list on the Issue List to be selected as assignee for a ticket. They will be informed by mail immediately after selection.
status text instead of icons at Issue list
on/off if you switch on here the status is provided as text.
Usually little icons will be displayed with status text as tooltip to save space on table output. If you modified the status levels you have to store same named gif-images into the IssueTracker images folder to get them visible.
severity text instead of icons at Issue list
on/off If you switch on here the severity is provided as text.
Usually little icons will be displayed with severity level text as tooltip to save space on table output. If you modified the severity levels you have to store same named gif-images into the IssueTracker images folder to get them visible.
Reduce Report form by following selection
on/off per report control to reduce the issue report form from unwanted complexity, just hook the controls you do not need
Exclude these filter controls from Issue List
on/off per report control
turn on for multi project handling
on/off if multiproject is turned on then project parameter will be ignored, all project files will be loaded and issues displayed
show project column
on/off displays an additional, leading column containing the project name per issue
global sort order of selected key
default listview sort order

Beside this configuration settings you have the possibility to use your own severity and status icons.
Simply save the picture files as [your status].gif or [your severity].gif and store them into /dokuwiki/lib/plugins/issuetracker/images folder. For example you configured a status ”gelöst” instead of ”solved” then your image file name schould be geloest.gif. Therefore the German language file contain two lines where German “Umlaute” will be converted accordingly.

:!: If you are using different status text as originally provided then please check plugin/issuetracker/lang/[your language]/lang.php for


It has to be identical (case sensitive !).


Use this plugin to simply create an issue tracking. It owns dokumicrobugtracker 2011-04-13 as initial code base for corrections, which was not working on my installation (Rincewind + Arctic). Probably you noticed the same problems (e.g. edit of entries does not work) and may find a help with this.

1. Report an issue
This is a form shown to the user to provide controls for input of issue information.
Following information are handled:

ID automatically set
Project automatically set (defined by your_project, see Syntax)
Product user can select from admin pre-defined set of values
Version user to enter version info
User name name derived from login if registered user, else should be entered by user
User mail e-mail derived from login if registered user, else should be entered by user
User phone phonenumber of the user
Add contact a further contact can be added if necessary
Severity user can select from admin pre-defined set of severities
Issue Title the headline of the issue
Issue Description user to enter the issue details
Symptoms user may add up to 3 links targeting files on a symptom server
Captcha user to enter

2. Issue List
The Plugin delivers an issue list, where admin can configure a restricted view for users. The admin view delivers more details in the table.
Admin is able to modify some entries directly on this output, i.e. admin is able to assign the issue to a member of configured user-groups
(see configuration).


Remark: All project files of defined IT data store will be loaded if multiproject config switch is turned on.

3. Issue Details view
For better handling and also accessible for users there is a details view of an issue. Therefore the Issue List containing a input and button to specify the isuue ID. This will provide a new page displaying all information of an issue and delivering a comment function for interaction between User and Admin/assigned resource. Both (user/assignee) will be informed about issue updates by email, if configured.

4. General Info
There are multiple files created. First there is a project file containing all issue information except comments. Each issue will have a comments file where the communication is logged. A modification log provides a history to follow-up status changes (answering the when, who, what). All files are stored to data/meta directory with file extension ”.issue”, ”.mod-log” and ”.cmnts”. The location of the files depending on your configuration settings in »it_data.


Please use only the DokuWiki Forum for discussion and our IssueTracker Report Form or git to raise issues.
The plugin development is still ongoing. There might be something be corrected, to implement and to improve.


How to create html-eMail templates ?

This is a bit more complex and therefore the topic is handled on separate following page: HTML eMail notification templates

How to change the font size of IssueList ?

The text size can be adjusted by modification of the css. Just create a file screen.css within the issuetracker plugin folder. The following content is an example:

/** * Design Elements - local CSS for the IssueTracker plugin * * @author Taggic */ div.itl__table td, div.issuetracker_div { font-size: 1.25em !important; }
  2. /**
  3.  * Design Elements - local CSS for the IssueTracker plugin *
  4.  * @author Taggic <> */
  6. div.itl__table td, div.issuetracker_div {
  7.     font-size:      1.25em !important;
  8. }

This will switch the font size of the table. This file will be kept untouched by plugin updates.

How to follow a foreign issue

You may detect an issue you are interested in and want to follow up its progress. You can easily add your mail address to the details and will be informed about all changes. Therefore you have to be registered and logged in as usual. Open the Details of the specific issue and look on the Reporter Details block. Please click on the Details slider tab to make them visible. By clicking on the little plus sign a textbook will appear. There you can add your pre-filled eMail address by pushing the add button. You should see a picture similar to following: After you successfully added your email address it will be shown to you above the text input box. You will not see the details of other followers as others will not see yours. Below the Add contact text and Plus image a small text informs you about quantity of current followers. Followers are all registered mail addresses for an issue beside the reporter and assignee (as long as the do not add additionally their addresses).

If you want to deregister just click the Add button again. IssueTracker checks that you are already following this issue and assumes that you now want to get rid of it. You will see that after page refresh your mail address above the text input will disappear and the followers are reduced by one.

A message box on top of the page will inform you about the modification result.

How to use & style links and images

versions beyond 2012-02-19
The usage of links and images following the syntax of DokuWiki Forum2). However, we will explain it here. Links (URL) Initially we differ between internal and external links. Internal links have to be provided by full qualified path with leading colon. The following syntax

1 [link]:issuetracker:issuelist[/link]
2 [link=:issuetracker:issuelist][/link]
3 [link=:issuetracker:issuelist]issuetracker:issuelist[/link]

will lead into following link output:

External links starting with http or ftp or www will be recogniced. You can have a simple url just by giving the pure link or you want to style it with a title displayed instead of the link itself. Therefore the following code will apply:

1 [link][/link]
2 [link=][/link]
3 [link=]Issue List[/link]

This will cause following output (except the icons):

To link wiki internal media files for download the following syntax to be used:


This lead into following output (except the icon):

Image links following similar syntax.Pictures stored to DokuWiki media directory have to be given by full qualified path (:namespace:image.ext). The following syntax

 1 [img]:issuetracker:img.png[/img]         ImageLink toolbar button (stored to data/media/issuetracker)
 2 [img=:issuetracker:img.png]a title[/img] ImageLink toolbar button with a title (stored to data/media/issuetracker)
 3 [img=:issuetracker:img.png][/img]        ImageLink toolbar button where title is empty (stored to data/media/issuetracker)

will cause following output (hover over the images to see differences in tooltips):

  1. :issuetracker:img.png
  2. a title

Can't modify entries in IE & Chrome

see Issue 33


Under Firefox I can click on each entry in the issue list to modify it. The same doesn't work for me in IE v9 or Chrome v15. It seems to be a bug in fabtabulous.js. Here are the console error messages I get on loading the issue list page:

SCRIPT5007: Unable to get value of the property 'getElementsByTagName': object is null or undefined fabtabulous.js, line 14 character 3

fabtabulous.js:14 Uncaught TypeError: Cannot call method 'getElementsByTagName' of null Fabtabs.initialize fabtabulous.js:14 klass prototype.js:101 (anonymous function) doku.php:321

Root Cause

Check to “Allow” Scripts on your Chrome and IE.

There was a conflict with a javascript library in another plugin:
I changed the last few lines in encryptedpasswords/jsencryption.js to

if (!Array.indexOf) { Array.prototype.indexOf = function(a, b) { for (var i = (b || 0); i < this.length; i++) { if (this == a) { return i } } return -1; // needed for compatibility with issuetracker plugin [Rik, 2011-12-15] } }
  2. if (!Array.indexOf) {
  3.   Array.prototype.indexOf = function(a, b) {
  4.     for (var i = (b || 0); i < this.length; i++) {
  5.       if (this == a) {
  6.         return i
  7.       }
  8.     }
  9.     return -1; // needed for compatibility with issuetracker plugin [Rik, 2011-12-15]
  10.   }
  11. }

It looks like Firefox 7 has Array.indexOf defined but Chrome 15 and IE 8 don't so the code would be called and it broke something (probably in the prototype library). I've sent a bug report to the author of jsencryption.js and I'll put a notice on the encryptedpasswords plugin page.

Cheers, Rik


Independently of the upper mentioned influence by another plugin this behaviour was also noticed in the event the second list does not contain any elements (e.g. not even one issue solved so far ⇒ the second list would be obsolete at all until something to be displayed).

Active Directory (AUTH:AD) authentication

Initially visit the Active Directory Authentication and compare your configuration settings. Please check also the DokuWiki Forum for related posts:
       DW Forum - Search "Active Directory"

       That problem is not caused by but affecting IssueTracker.

see Issue 37

If you use AUTH:AD as authentication backend in DokuWiki you will run into problems with Issue Tracker if you have more than 1000 objects in Active Directory. This is not Issue Tracker's or AUTH:AD/adLDAP's fault, it is a known problem with PHP's LDAP extension.


You can work around this PHP bug by increasing the MaxPageSize value in Active Directory (see, but make sure you know what problems that may cause (Microsoft Exchange BPA etc).

2012-01-14 → dali

When I was troubleshooting the problem I found two recommendations:

- Fix the application. AD has paging support and limits the query answers to 1000 objects for a reason. - Increase MaxPageSize. Not recommended by Microsoft, may cause issues with Exchange Server.

The first recommendation is not doable since “the application” in this case is PHP itself and the problem is well known since 2005, yet nothing seems to be done about it.

The second one I haven't tried in our (production) environment because of the unknown long term consequences and possible support issues with Microsoft if we would have to open a support case involving Active Directory and/or Exchange Server.

I've seen indications that there are hard coded limits to account for if you use Windows Server 2008 as domain controller:, perhaps the problems you experience are caused by them.

2012-02-15 → dali

  1. workaround coded → upon parameter setting an Input box appears to be manually filled instead of DokuWiki ACL based pre-filled Select control (please take care that option 'shw_assignee_as' to mail else IssueTracker tries to resolve an e-mail address where login/name is not configured with DokuWiki ⇒ assignee cannot be displayed correctly).
  2. implemented in release 2012-02-22
  3. feedback from → dali: “I've done some initial testing with the above build and it looks promising, no errors and no blank pages ”
  4. more details on Issue #37

2012-02-21 → Taggic

See also DW-Forum: AD Verbindung Limit 1000 values aufheben, which provides a authAD re-configuration to jump over the hurdle.

Unable to assign Issues when using LDAP authentication

see Issue 38

well, as quick workaround for myself, i added the following spaghetti code.
the inputfile is based on a simple email list, grabbed from LDAP ldif file with a cronjob.

// --------------------------------------------------- // Workaround Code in 'syntax.php' // comment out the old code block, used to build the 'assign to' list // --------------------------------------------------- // Build 'assign to' list from a simple textfile $userList = "/var/www/wiki/conf/user.mail.list"; $userList_handle = fopen("$userList", "rb"); while (!feof($userList_handle) ) { $line_of_text = fgets($userList_handle); $parts = explode('=', $line_of_text); //print $parts[0] . $parts[1]. "
"; $x_umail_select = $x_umail_select . "['".$parts[0]."','".$parts[0]."'],"; } fclose($userList_handle);
  2. // ---------------------------------------------------
  3. // Workaround Code in 'syntax.php'
  4. // comment out the old code block, used to build the 'assign to' list
  5. // ---------------------------------------------------
  7. // Build 'assign to' list from a simple textfile
  8.   $userList = "/var/www/wiki/conf/user.mail.list";
  9.   $userList_handle = fopen("$userList", "rb");
  11.   while (!feof($userList_handle) ) {
  12.      $line_of_text = fgets($userList_handle);
  13.      $parts = explode('=', $line_of_text);
  14.      //print $parts[0] . $parts[1]. "<BR>";
  15.      $x_umail_select = $x_umail_select . "['".$parts[0]."','".$parts[0]."'],";
  16.   }
  18.   fclose($userList_handle);

2012-01-27 → lukas

1) DW function pageInfo() owns a weak-point, it is not updated by User Profile modifications !
2) behaviour [link] is equal to [url] of DW Forum
issuetracker/descr.txt · Last modified: 2015/02/10 13:56 by taggic

This Wiki is hosted and ruled by Policies of Frister Consultancy Services.
By using this wiki you accept these rules. -> Impressum