Open main menu

Extension:IssueTracker 2.0

MediaWiki extensions manual
OOjs UI icon advanced.svg
IssueTracker2.0
Release status: beta
IssueTrackerSmall.jpg
Implementation Tag , Special page
Description A simple and powerful bug tracking and issue tracking extension developed to make this process easier for your team.
Author(s) Federico Cargnelutti, Erick Corona (Erick.coronatalk)
Latest version 2.0 (2017-09-11)
MediaWiki 1.28+
License GNU General Public License 2.0 or later
Download GitHub
Translate the IssueTracker 2.0 extension if it is available at translatewiki.net
Check usage and version matrix.

The IssueTracker2.0 extension is a simple and powerful bug tracking and issue tracking system developed to make this process easier for your team. It introduces the <issues /> tag to the MediaWiki markup, which can be used to produce an issue and bug tracking system.

Contents

FeaturesEdit

Version 1.0 (see Extension:IssueTracker)Edit

  • View, add, edit and archive issues.
  • Search issues.
  • Filter issues.
  • List issues (new, resolved, closed, archived and/or any other custom tag).
  • Access Control List (group of users can have a different access levels).
  • Anonymous issue management.
  • MVC architecture, easy to extended.

Version 1.1 (not yet released)Edit

  • Attachments.
  • Issue change history. (See bugzilla:59665)
  • Changelog support.
  • Email notifications.
  • Users can monitor specific issues.

Version 2.0 (forked from IssueTracker version 1.0, compatible with mediawiki 1.28+)Edit

  • Name research and status filters can be used simultaneously.
  • Link an issue to a wiki page.
  • Issue tags translations and status translations enabled.

ScreenshotEdit

To do.

UsageEdit

The IssueTracker extension provides a custom tag, <issues />, that allows the inclusion of an issue tracker in any wiki page. It's possible to customize almost every aspect of the extension, such as permissions, user groups, colours, titles, and templates. It supports searching and several types of filtering.

To embed an issue tracker into a page, use the <issues /> tag

{{#issue: }}

If a project name is not provided, the extension will use the page namespace as the default project name. You can create multiple issue trackers by providing different project names, for example:

{{#issue: project=myproject}}

To hide the filter and search forms you can set the search and filter options to false:

{{#issue: filter=false|project=myproject}}

By default, users must be logged in to add, edit or achieve issues. If you want to allow anonymous issue management, set the authenticate option to false:

{{#issue: authenticate=false|project=myproject}}

OptionsEdit

  • project = String: The project name (default: page namespace).
  • authenticate = Boolean: User authentication (default: true).
  • search = Boolean: Display search form (default: true).
  • filter = Boolean: Display filter form (default: true).

DownloadEdit

You can get the lastest version hosted on github (master branch) or download it.

InstallationEdit

1. Copy the IssueTracker2/ directory into the extensions folder of your MediaWiki installation. Note: Make sure that the extensions/ directory and the IssueTracker/ directory are both readable and executable by everyone.

2. Add the following lines to the LocalSettings.php file:

//issuetracker extension
wfLoadExtension( 'IssueTracker2' );
$wgAvailableRights[] = 'issuetracker-list';
$wgAvailableRights[] = 'issuetracker-view';
$wgAvailableRights[] = 'issuetracker-add';
$wgAvailableRights[] = 'issuetracker-edit';
$wgAvailableRights[] = 'issuetracker-archive';
$wgAvailableRights[] = 'issuetracker-delete';
$wgAvailableRights[] = 'issuetracker-assign';
$wgAvailableRights[] = 'issuetracker-assignee';

$wgGroupPermissions['*']['issuetracker-list'] = true;
$wgGroupPermissions['*']['issuetracker-view'] = true;
$wgGroupPermissions['*']['issuetracker-add'] = true;
$wgGroupPermissions['*']['issuetracker-edit'] = true;
$wgGroupPermissions['*']['issuetracker-archive'] = true;
$wgGroupPermissions['*']['issuetracker-delete'] = true;
$wgGroupPermissions['sysop']['issuetracker-assign'] = true;
$wgGroupPermissions['developer']['issuetracker-assignee'] = true;

3. Create the database table, executing the following script on your MySQL administration tool. In case you are using Wiki SQL table prefixes, do not forget to add that prefix as prefix to the table name issue_tracker.

If you have specified a prefix ($wgDBprefix in your file LocalSettings.php) do not forget to add it to the name of the database table.

CREATE TABLE `issue_tracker` (
  `issue_id` int(10) NOT NULL auto_increment,
  `type` varchar(5) NOT NULL default 't_bug',
  `title` varchar(100) NOT NULL,
  `summary` text NOT NULL,
  `status` varchar(5) NOT NULL default 's_new',
  `assignee` varchar(40) NOT NULL,
  `user_name` varchar(40) NOT NULL,
  `user_id` int(10) NOT NULL,
  `project_name` varchar(100) NOT NULL,
  `deleted` int(1) NOT NULL default '0',
  `history` text NOT NULL,
  `priority_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `date_created` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `page` varchar(100),
  PRIMARY KEY  (`issue_id`),
  KEY `user_id` (`user_id`)
);

CustomizationEdit

Customization options are available and can be set in the IssueTracker.config.php file.

Issue TypesEdit

$type['t_bug'] = array('name' => 'Bug', 'colour' => 'FFDFDF');
$type['t_fea'] = array('name' => 'New Feature', 'colour' => 'E1FFDF');
$type['t_imp'] = array('name' => 'Improvement', 'colour' => 'FFFFCF');
$type['t_doc'] = array('name' => 'Doc', 'colour' => 'F9F9F9');
$type['t_fee'] = array('name' => 'Feedback', 'colour' => 'E5D4E7');
$type['t_tes'] = array('name' => 'Test', 'colour' => 'DFE2FF');

You can add as many issue types as you want, for example:

...
$type['t_pat'] = array('name' => 'Patch', 'colour' => 'EEEEEE');

Issue StatusEdit

$status['s_new'] = array('name' => 'New', 'colour' => 'F9F9F9');
$status['s_asi'] = array('name' => 'Assigned', 'colour' => 'F9F9F9');
$status['s_res'] = array('name' => 'Resolved', 'colour' => 'B8EFB3');
$status['s_clo'] = array('name' => 'Closed', 'colour' => 'F9F9F9');

PermissionsEdit

$perms['list']     = array('group' => '*');
$perms['view']     = array('group' => '*');
$perms['add']      = array('group' => '*');
$perms['edit']     = array('group' => '*');
$perms['archive']  = array('group' => '*');
$perms['delete']   = array('group' => '*');
$perms['assign']   = array('group' => 'sysop');
$perms['assignee'] = array('group' => 'devel');

By default:

  • list: Any group can access the listing page.
  • view: Any group can view issues.
  • add: Any group can add issues.
  • edit: Any group can edit issues.
  • archive: Any group can archive issues.
  • delete: Any group can delete issues.
  • assign: Only the "Sysop" group can assign issues.
  • assignee: Issues can only be assigned to users in the "Devel" group.

LicenseEdit

GNU General Public Licence 2.0 or later. Copyright © 2008, Federico Cargnelutti. © 2017, Erick Corona