diff options
author | gerv%gerv.net <> | 2002-10-08 15:41:17 +0200 |
---|---|---|
committer | gerv%gerv.net <> | 2002-10-08 15:41:17 +0200 |
commit | f1ddf54f4cfc06d99ded78e496c45b324fc0815d (patch) | |
tree | c7f951c72da4494d8828a2a6587300c4d578fa89 /template/en/default/reports | |
parent | 5cdbfa01288bb9739fe080e6f443d8672992cea3 (diff) | |
download | bugzilla-f1ddf54f4cfc06d99ded78e496c45b324fc0815d.tar.gz bugzilla-f1ddf54f4cfc06d99ded78e496c45b324fc0815d.tar.xz |
Bug 171437 - Enhancements to generic reporting. Reporting menu, 3D tables, rearranged UI, better API for new report types. Patch by gerv; r=joel.
Diffstat (limited to 'template/en/default/reports')
-rw-r--r-- | template/en/default/reports/menu.html.tmpl | 61 | ||||
-rw-r--r-- | template/en/default/reports/report-table.csv.tmpl (renamed from template/en/default/reports/table.csv.tmpl) | 42 | ||||
-rw-r--r-- | template/en/default/reports/report-table.html.tmpl | 207 | ||||
-rw-r--r-- | template/en/default/reports/table.html.tmpl | 143 |
4 files changed, 297 insertions, 156 deletions
diff --git a/template/en/default/reports/menu.html.tmpl b/template/en/default/reports/menu.html.tmpl new file mode 100644 index 000000000..d93717532 --- /dev/null +++ b/template/en/default/reports/menu.html.tmpl @@ -0,0 +1,61 @@ +<!-- 1.0@bugzilla.org --> +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham <gerv@gerv.net> + #%] + +[%# INTERFACE: + # This template has no interface. It's a list of the available report + # types in Bugzilla. + #%] + +[% PROCESS global/header.html.tmpl + title = "Reporting and Charting Kitchen" +%] + +<p> + Bugzilla allows you to view and track the state of your bug database in + all manner of exciting ways. +</p> + +<h2>Current State</h2> + +<ul> + <li> + <strong><a href="query.cgi">Search</a></strong> - + list sets of bugs. + </li> + <li> + <strong> + <a href="query.cgi?format=report-table">Tabular reports</a> + </strong> - + tables of bug counts in 1, 2 or 3 dimensions, as HTML or CSV. + </li> +</ul> + +<h2>Change Over Time</h2> + +<ul> + <li> + <strong><a href="reports.cgi">Charts</a></strong> - + plot the status and/or resolution of bugs against + time, for each product in your database. + </li> +</ul> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/table.csv.tmpl b/template/en/default/reports/report-table.csv.tmpl index 96b0c3971..a80a618c8 100644 --- a/template/en/default/reports/table.csv.tmpl +++ b/template/en/default/reports/report-table.csv.tmpl @@ -21,21 +21,37 @@ [%# INTERFACE: # See report.html.tmpl. #%] -[% row_field FILTER csv -%] + +[% tbl_names = names.tbl.keys.sort %] +[% col_names = names.col.keys.sort %] +[% row_names = names.row.keys.sort %] -[% IF col_field -%] +[% FOREACH tbl = tbl_names %] + [% IF tbl_field -%] + [% tbl FILTER html %] + [% END %] + + [% row_field FILTER csv -%] + + [% IF col_field -%] \ [% col_field FILTER csv -%], -[% FOREACH col = col_names -%] -[% col FILTER csv -%], -[% END -%] -[% ELSE -%] -,Number of bugs, -[% END %] + [% FOREACH col = col_names -%] + [% col FILTER csv -%], + [% END -%] + [% ELSE -%] + [% -%],Number of bugs + [% END %] -[% FOREACH row = row_names %] -[% row FILTER csv -%], -[% FOREACH col = col_names %] -[% IF data.$row AND data.$row.$col %][% data.$row.$col -%],[% ELSE %]0,[% END %] -[% END %] + [% FOREACH row = row_names %] + [% row FILTER csv -%], + [% FOREACH col = col_names %] + [% IF data.$tbl AND data.$tbl.$col AND data.$tbl.$col.$row %] + [% data.$tbl.$col.$row -%], + [% ELSE %] + [% -%]0, + [% END %] + [% END %] + [% END %] + [% END %] diff --git a/template/en/default/reports/report-table.html.tmpl b/template/en/default/reports/report-table.html.tmpl new file mode 100644 index 000000000..81ca27866 --- /dev/null +++ b/template/en/default/reports/report-table.html.tmpl @@ -0,0 +1,207 @@ + <!-- 1.0@bugzilla.org --> +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham <gerv@gerv.net> + # <rdean@cambianetworks.com> + #%] + +[%# INTERFACE: + # basequery: The base query for this table, in URL form + # data: hash of hash of hash of numbers. Bug counts. + # names: hash of hash of strings. Names of tables, rows and columns. + # col_field: string. Name of the field being plotted as columns. + # row_field: string. Name of the field being plotted as rows. + # tbl_field: string. Name of the field being plotted as tables. + #%] + +[% PROCESS "global/field-descs.html.tmpl" %] + +[% tbl_field_disp = field_descs.$tbl_field || tbl_field %] +[% col_field_disp = field_descs.$col_field || col_field %] +[% row_field_disp = field_descs.$row_field || row_field %] + +[% title = BLOCK %] + Report: + [% "$tbl_field_disp / " IF tbl_field %] + [% "$col_field_disp / " IF col_field %] + [% row_field_disp %] +[% END %] + +[% PROCESS global/header.html.tmpl + style = " + .t1 { background-color: #ffffff } /* white */ + .t2 { background-color: #dfefff } /* light blue */ + .t3 { background-color: #dddddd } /* grey */ + .t4 { background-color: #c3d3ed } /* darker blue */ + .ttotal { background-color: #cfffdf } /* light green */ + " +%] + +<div align="right"> + [% time2str("%Y-%m-%d %H:%M:%S", time) %] +</div> + +[% tbl_names = names.tbl.keys.sort %] +[% col_names = names.col.keys.sort %] +[% row_names = names.row.keys.sort %] + +[% total_name = "Total" %] + +[% IF tbl_field %] + [%# Calculate and set up the Total table %] + + [% FOREACH tbl = tbl_names %] + [% FOREACH row = row_names %] + [% FOREACH col = col_names %] + [% data.$total_name.$col.$row = + data.$total_name.$col.$row + data.$tbl.$col.$row %] + [% END %] + [% END %] + [% END %] + + [% tbl_names.push(total_name) %] +[% END %] + +<div align="center"> + +[% FOREACH tbl = tbl_names %] + <table> + [% IF tbl_field %] + <tr> + <td> + </td> + <td align="center"> + <h2>[% tbl FILTER html %]</h2> + </td> + </tr> + [% END %] + <tr> + <td> + </td> + <td align="center"> + <strong>[% col_field_disp FILTER html %]</strong> + </td> + </tr> + + <tr> + <td valign="middle"> + <strong>[% row_field_disp FILTER html %]</strong> + </td> + <td> + + +[% classes = [ [ "t1", "t2" ] , [ "t3", "t4" ] ] %] +[% col_idx = 0 %] +[% row_idx = 0 %] +[% grand_total = 0 %] + +<table border="1"> + [% IF col_field %] + <tr> + <td class="[% classes.$row_idx.$col_idx %]"> + </td> + [% FOREACH col = col_names %] + [% col_totals.$col = 0 %] + [% NEXT IF col == "" %] + + [% col_idx = 1 - col_idx %] + <td class="[% classes.$row_idx.$col_idx %]"> + [% col FILTER html %] + </td> + [% END %] + <td class="ttotal"> + Total + </td> + </tr> + [% END %] + + [% FOREACH row = row_names %] + [% row_total = 0 %] + + [% row_idx = 1 - row_idx %] + <tr> + <td class="[% classes.$row_idx.$col_idx %]" align="right"> + [% row FILTER html %] + </td> + [% FOREACH col = col_names %] + [% row_total = row_total + data.$tbl.$col.$row %] + [% col_totals.$col = col_totals.$col + data.$tbl.$col.$row %] + [% NEXT IF col == "" %] + + [% col_idx = 1 - col_idx %] + <td class="[% classes.$row_idx.$col_idx %]" align="center"> + [% IF data.$tbl.$col.$row AND data.$tbl.$col.$row > 0 %] + <a href="buglist.cgi?[% buglistbase %]& + [% tbl_field FILTER url_quote %]=[% tbl FILTER url_quote %]& + [% row_field FILTER url_quote %]=[% row FILTER url_quote %]& + [% col_field FILTER url_quote %]=[% col FILTER url_quote %]"> + [% data.$tbl.$col.$row %]</a> + [% ELSE %] + . + [% END %] + </td> + [% END %] + <td class="ttotal" align="right"> + <a href="buglist.cgi?[% buglistbase %]& + [% tbl_field FILTER url_quote %]=[% tbl FILTER url_quote %]& + [% row_field FILTER url_quote %]=[% row FILTER url_quote %]"> + [% row_total %]</a> + [% grand_total = grand_total + row_total %] + </td> + </tr> + [% END %] + + <tr> + [% row_idx = 1 - row_idx %] + <td class="ttotal"> + Total + </td> + [% FOREACH col = col_names %] + [% NEXT IF col == "" %] + + <td class="ttotal" align="center"> + <a href="buglist.cgi?[% buglistbase %]& + [% tbl_field FILTER url_quote %]=[% tbl FILTER url_quote %]& + [% col_field FILTER url_quote %]=[% col FILTER url_quote %]"> + [% col_totals.$col %]</a> + <strong> + </td> + [% END %] + <td class="ttotal" align="right"> + <strong> + <a href="buglist.cgi?[% buglistbase %]">[% grand_total %]</a> + </strong> + </td> + </tr> +</table> + + + </td> + </tr> + </table> + + <br> + +[% END %] + + <a href="query.cgi?[% buffer %]&format=report-table">Edit this report</a> +</div> + +<br> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/table.html.tmpl b/template/en/default/reports/table.html.tmpl deleted file mode 100644 index d9a04d5fd..000000000 --- a/template/en/default/reports/table.html.tmpl +++ /dev/null @@ -1,143 +0,0 @@ - <!-- 1.0@bugzilla.org --> -[%# The contents of this file are subject to the Mozilla Public - # License Version 1.1 (the "License"); you may not use this file - # except in compliance with the License. You may obtain a copy of - # the License at http://www.mozilla.org/MPL/ - # - # Software distributed under the License is distributed on an "AS - # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - # implied. See the License for the specific language governing - # rights and limitations under the License. - # - # The Original Code is the Bugzilla Bug Tracking System. - # - # The Initial Developer of the Original Code is Netscape Communications - # Corporation. Portions created by Netscape are - # Copyright (C) 1998 Netscape Communications Corporation. All - # Rights Reserved. - # - # Contributor(s): Gervase Markham <gerv@gerv.net> - # <rdean@cambianetworks.com> - #%] - -[%# INTERFACE: - # basequery: The base query for this table, in URL form - # row_field: string. The field name for the data in table rows - # col_field: string. The field name for the data in table columns - # col_names: array of strings. Values for the columns - # row_names: array of strings. Values for the rows - # col_totals: hash of integers. Totals for the columns, indexed by col_names. - # row_totals: hash of integers. Totals for the rows, indexed by row_names. - # data: hash of hash of numbers. Bug counts indexed by col_names and - # row_names values. - #%] - -[% PROCESS global/header.html.tmpl - title = "Report" - onload = "selectProduct(document.forms['queryform']);" - style = " - .t1 { background-color: #ffffff } - .t2 { background-color: #dfefff } - .t3 { background-color: #dddddd } - .t4 { background-color: #c3d3ed } - .ttotal { background-color: #cfffdf } - " -%] - -<div align="center"> - <table> - <tr> - <td> - </td> - <td align="center"> - <strong>[% col_field FILTER html %]</strong> - </td> - </tr> - - <tr> - <td valign="middle"> - <strong>[% row_field FILTER html %]</strong> - </td> - <td> - - -[% classes = [ [ "t1", "t2" ] , [ "t3", "t4" ] ] %] -[% col_idx = 0 %] -[% row_idx = 0 %] - -<table> - [% IF col_names %] - <tr> - <td class="[% classes.$row_idx.$col_idx %]"> - </td> - [% FOREACH col = col_names %] - [%# If no col header, skip the col. This makes display look right if - there's no defined X axis. Not doing this gives us two cols. %] - [% NEXT IF col == "" %] - [% col_idx = 1 - col_idx %] - <td class="[% classes.$row_idx.$col_idx %]"> - [% col FILTER html %] - </td> - [% END %] - <td class="ttotal"> - Total - </td> - </tr> - [% END %] - - [% FOREACH row = row_names %] - [% row_idx = 1 - row_idx %] - <tr> - <td class="[% classes.$row_idx.$col_idx %]"> - [% row FILTER html %] - </td> - [% FOREACH col = col_names %] - [% NEXT IF col == "" %] - [% col_idx = 1 - col_idx %] - <td class="[% classes.$row_idx.$col_idx %]" align="center"> - [% IF data.$row.$col AND data.$row.$col > 0 %] - <a href="buglist.cgi?[% buglistbase %]& - [% row_field FILTER url_quote %]=[% row FILTER url_quote %]& - [% col_field FILTER url_quote %]=[% col FILTER url_quote %]"> - [% data.$row.$col %]</a> - [% ELSE %] - . - [% END %] - </td> - [% END %] - <td class="ttotal"> - [% row_totals.$row %] - </td> - </tr> - [% END %] - - <tr> - [% row_idx = 1 - row_idx %] - <td class="ttotal"> - Total - </td> - [% FOREACH col = col_names %] - [% NEXT IF col == "" %] - <td class="ttotal" align="center"> - [% col_totals.$col %] - </td> - [% END %] - <td class="ttotal"> - <strong> - [% grand_total %] - </strong> - </td> - </tr> -</table> - - - </td> - </tr> - </table> - - <a href="query.cgi?[% buffer %]&format=report-table">Edit this report</a> -</div> - -<br> - -[% PROCESS global/footer.html.tmpl %] |