Commit 3e4c5032 authored by gerv%gerv.net's avatar gerv%gerv.net

Bug 180205 - General reporting fixes. Fixes bug 180151 (Grand total links are…

Bug 180205 - General reporting fixes. Fixes bug 180151 (Grand total links are messed up when axis is restricted), bug 180105 (CSV reports occasionally break), bug 179671 (Boolean charts are broken on reporting pages), bug 179887 (report.cgi should |require Data::Dumper|, not |use|), and works around bug 179581 (Keyword combinations report not very useful). Patch by gerv; r=bbaetz, a=justdave.
parent e68c953f
......@@ -28,6 +28,14 @@ require "CGI.pl";
use vars qw($cgi $template $vars);
# Go straight back to query.cgi if we are adding a boolean chart.
if (grep(/^cmd-/, $cgi->param())) {
my $params = $cgi->canonicalise_query("format", "ctype");
print "Location: query.cgi?format=" . $cgi->param('query_format') .
($params ? "&$params" : "") . "\n\n";
exit;
}
use Bugzilla::Search;
ConnectToDatabase();
......@@ -216,10 +224,18 @@ if ($action eq "wrap") {
$vars->{'format'} = $formatparam;
$formatparam = '';
# We need to keep track of the defined restrictions on each of the
# axes, because buglistbase, below, throws them away. Without this, we
# get buglistlinks wrong if there is a restriction on an axis field.
$vars->{'col_vals'} = join("&", $::buffer =~ /[&?]($col_field=[^&]+)/g);
$vars->{'row_vals'} = join("&", $::buffer =~ /[&?]($row_field=[^&]+)/g);
$vars->{'tbl_vals'} = join("&", $::buffer =~ /[&?]($tbl_field=[^&]+)/g);
# We need a number of different variants of the base URL for different
# URLs in the HTML.
$vars->{'buglistbase'} = $cgi->canonicalise_query(
"x_axis_field", "y_axis_field", "z_axis_field", "format", @axis_fields);
"x_axis_field", "y_axis_field", "z_axis_field",
"ctype", "format", @axis_fields);
$vars->{'imagebase'} = $cgi->canonicalise_query(
$tbl_field, "action", "ctype", "format", "width", "height");
$vars->{'switchbase'} = $cgi->canonicalise_query(
......@@ -249,11 +265,11 @@ print "Content-Type: $format->{'ctype'}\n\n";
# Problems with this CGI are often due to malformed data. Setting debug=1
# prints out both data structures.
if ($::FORM{'debug'}) {
use Data::Dumper;
require Data::Dumper;
print "<pre>data hash:\n";
print Dumper(%data) . "\n\n";
print Data::Dumper::Dumper(%data) . "\n\n";
print "data array:\n";
print Dumper(@image_data) . "\n\n</pre>";
print Data::Dumper::Dumper(@image_data) . "\n\n</pre>";
}
$template->process("$format->{'template'}", $vars)
......
......@@ -37,7 +37,8 @@
[% row_field_disp = field_descs.$row_field || row_field %]
[% IF tbl == "-total-" %]
[% urlbase = BLOCK %]buglist.cgi?[% buglistbase %][% END %]
[% urlbase = BLOCK %]buglist.cgi?[% buglistbase %]
[% "&amp;$tbl_vals" IF tbl_vals %][% END %]
[% ELSE %]
[% urlbase = BLOCK %]buglist.cgi?[% buglistbase %]&amp;
[% tbl_field FILTER url_quote %]=[% tbl FILTER url_quote %][% END %]
......@@ -120,7 +121,8 @@
[% END %]
<td class="ttotal" align="right">
<a href="[% urlbase %]&amp;
[% row_field FILTER url_quote %]=[% row FILTER url_quote %]">
[% row_field FILTER url_quote %]=[% row FILTER url_quote %]
[% "&amp;$col_vals" IF col_vals %]">
[% row_total %]</a>
[% grand_total = grand_total + row_total %]
</td>
......@@ -137,14 +139,17 @@
<td class="ttotal" align="center">
<a href="[% urlbase %]&amp;
[% col_field FILTER url_quote %]=[% col FILTER url_quote %]">
[% col_field FILTER url_quote %]=[% col FILTER url_quote %]
[% "&amp;$row_vals" IF row_vals %]">
[% col_totals.$col %]</a>
<strong>
</td>
[% END %]
<td class="ttotal" align="right">
<strong>
<a href="buglist.cgi?[% urlbase %]">[% grand_total %]</a>
<a href="[% urlbase %]
[% "&amp;$row_vals" IF row_vals %]
[% "&amp;$col_vals" IF col_vals %]">[% grand_total %]</a>
</strong>
</td>
</tr>
......
......@@ -329,6 +329,9 @@ function selectProduct(f) {
[% PROCESS "global/field-descs.html.tmpl" %]
[%# If we resubmit to ourselves, we need to know if we are using a format. %]
<input type="hidden" name="query_format" value="[% format %]">
[%# *** Summary *** %]
<table>
......
......@@ -33,8 +33,6 @@
[% button_name = "Search" %]
<form method="get" action="buglist.cgi" name="queryform">
[%# If we resubmit to ourselves, we need to know if we are using a format. %]
<input type="hidden" name="query_format" value="[% format %]">
[% PROCESS search/form.html.tmpl %]
......
......@@ -27,15 +27,15 @@
[% PROCESS "global/field-descs.html.tmpl" %]
[% BLOCK select %]
[% fields = ["product", "component", "version", "rep_platform",
"op_sys", "bug_status", "resolution", "bug_severity",
"priority", "target_milestone", "keywords", "assigned_to",
"reporter", "qa_contact", "votes" ] %]
[% rep_fields = ["product", "component", "version", "rep_platform",
"op_sys", "bug_status", "resolution", "bug_severity",
"priority", "target_milestone", "assigned_to",
"reporter", "qa_contact", "votes" ] %]
<select name="[% name FILTER html %]">
<option value="">&lt;none&gt;</option>
[% FOREACH field = fields %]
[% FOREACH field = rep_fields %]
[% NEXT IF field == "target_milestone" AND !Param('usetargetmilestone') %]
[% NEXT IF field == "qa_contact" AND !Param('useqacontact') %]
[% NEXT IF field == "votes" AND !Param('usevotes') %]
......
......@@ -33,8 +33,6 @@
[% button_name = "Search" %]
<form method="get" action="buglist.cgi" name="queryform">
[%# If we resubmit to ourselves, we need to know if we are using a format. %]
<input type="hidden" name="query_format" value="[% format %]">
[% PROCESS search/form.html.tmpl %]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment