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.

This commit is contained in:
gerv%gerv.net 2002-11-17 23:56:32 +00:00
Родитель 959f5bc929
Коммит 6099abf94f
6 изменённых файлов: 37 добавлений и 17 удалений

Просмотреть файл

@ -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 %]