summaryrefslogtreecommitdiffstats
path: root/template/en/default/reports
diff options
context:
space:
mode:
authorgerv%gerv.net <>2002-10-08 15:41:17 +0200
committergerv%gerv.net <>2002-10-08 15:41:17 +0200
commitf1ddf54f4cfc06d99ded78e496c45b324fc0815d (patch)
treec7f951c72da4494d8828a2a6587300c4d578fa89 /template/en/default/reports
parent5cdbfa01288bb9739fe080e6f443d8672992cea3 (diff)
downloadbugzilla-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.tmpl61
-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.tmpl207
-rw-r--r--template/en/default/reports/table.html.tmpl143
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 %]&amp;
+ [% row_field FILTER url_quote %]=[% row FILTER url_quote %]&amp;
+ [% 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 %]&amp;
+ [% 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 %]&amp;
+ [% 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 %]