Graph from Filter Requirements
Author: Glenn Henshaw (thraxisp)
see also Performance Counters Requirements
Mantis has a fixed set of project summary graphs showing the current distribution of issues. There is one historical graph, showing the number of open/closed issues over all time.
This feature will add the ability to graph a set of issues based on a filter. The graph can then be time limited to well known intervals (this month, this quarter, etc) or a date range.
Three options for the graph data are be presented.
by status, showing all possible status values over the interval.
by status, reducing the status values to open, resolved and closed
The feature will be dependent on the availability of the jp_graph package, as noted by the $use_jpgraph setting.
A link was added to the filter page to link to the new graph page. The current filter value is passed using the existing cookie mechanism.
The graph page will contain both the selection criteria, and the graph itself. When no valid criteria are selected, the graph is not shown. DTHML was used to show / hide the date range selector when necessary. The js_calendar package will be used as a date picker.
Separate files will be used for each graph type. The basic algorithm is as follows:
expand the filter to capture all status values. This will capture closed bugs matching the filter.
search using the filter to capture all relevant bugs, and current status
retrieve all of the history for these bugs, back to the start date for the graph
walk backwards through the history. If the change date for the issue is after the end date, update the initial status counters. If it is before, update a current set of counters. At the same time, a history set is built by saving the counters at specific intervals.