Commit dd52ea1b authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 377956: Tabular and graphical reports should support single-select custom…

Bug 377956: Tabular and graphical reports should support single-select custom fields - Patch by Fré©ric Buclin <LpSolit@gmail.com> r=mkanat a=LpSolit
parent 3fcb8c1e
...@@ -116,7 +116,7 @@ sub PrefillForm { ...@@ -116,7 +116,7 @@ sub PrefillForm {
my $foundone = 0; my $foundone = 0;
# Nothing must be undef, otherwise the template complains. # Nothing must be undef, otherwise the template complains.
foreach my $name ("bug_status", "resolution", "assigned_to", my @list = ("bug_status", "resolution", "assigned_to",
"rep_platform", "priority", "bug_severity", "rep_platform", "priority", "bug_severity",
"classification", "product", "reporter", "op_sys", "classification", "product", "reporter", "op_sys",
"component", "version", "chfield", "chfieldfrom", "component", "version", "chfield", "chfieldfrom",
...@@ -133,8 +133,13 @@ sub PrefillForm { ...@@ -133,8 +133,13 @@ sub PrefillForm {
"x_axis_field", "y_axis_field", "z_axis_field", "x_axis_field", "y_axis_field", "z_axis_field",
"chart_format", "cumulate", "x_labels_vertical", "chart_format", "cumulate", "x_labels_vertical",
"category", "subcategory", "name", "newcategory", "category", "subcategory", "name", "newcategory",
"newsubcategory", "public", "frequency") "newsubcategory", "public", "frequency");
{ # These fields can also have default values (when used in reports).
my @custom_select_fields =
grep { $_->type == FIELD_TYPE_SINGLE_SELECT } Bugzilla->active_custom_fields;
push(@list, map { $_->name } @custom_select_fields);
foreach my $name (@list) {
$default{$name} = []; $default{$name} = [];
} }
...@@ -343,6 +348,13 @@ if (($cgi->param('query_format') || $cgi->param('format') || "") ...@@ -343,6 +348,13 @@ if (($cgi->param('query_format') || $cgi->param('format') || "")
$vars->{'category'} = Bugzilla::Chart::getVisibleSeries(); $vars->{'category'} = Bugzilla::Chart::getVisibleSeries();
} }
if ($cgi->param('format') && $cgi->param('format') =~ /^report-(table|graph)$/) {
# Get legal custom fields for tabular and graphical reports.
my @custom_fields_for_reports =
grep { $_->type == FIELD_TYPE_SINGLE_SELECT } Bugzilla->active_custom_fields;
$vars->{'custom_fields'} = \@custom_fields_for_reports;
}
$vars->{'known_name'} = $cgi->param('known_name'); $vars->{'known_name'} = $cgi->param('known_name');
......
...@@ -119,6 +119,15 @@ $columns{'op_sys'} = "bugs.op_sys"; ...@@ -119,6 +119,15 @@ $columns{'op_sys'} = "bugs.op_sys";
$columns{'votes'} = "bugs.votes"; $columns{'votes'} = "bugs.votes";
$columns{'keywords'} = "bugs.keywords"; $columns{'keywords'} = "bugs.keywords";
$columns{'target_milestone'} = "bugs.target_milestone"; $columns{'target_milestone'} = "bugs.target_milestone";
# Single-select fields are also accepted as valid column names.
my @single_select_fields =
grep { $_->type == FIELD_TYPE_SINGLE_SELECT } Bugzilla->active_custom_fields;
foreach my $custom_field (@single_select_fields) {
my $field_name = $custom_field->name;
$columns{$field_name} = "bugs.$field_name";
}
# One which means "nothing". Any number would do, really. It just gets SELECTed # One which means "nothing". Any number would do, really. It just gets SELECTed
# so that we always select 3 items in the query. # so that we always select 3 items in the query.
$columns{''} = "42217354"; $columns{''} = "42217354";
......
...@@ -43,5 +43,12 @@ ...@@ -43,5 +43,12 @@
[% " selected" IF default.$name.0 == field %]> [% " selected" IF default.$name.0 == field %]>
[% field_descs.$field || field FILTER html %]</option> [% field_descs.$field || field FILTER html %]</option>
[% END %] [% END %]
[%# Single-select fields are also valid column names. %]
[% FOREACH field = custom_fields %]
<option value="[% field.name FILTER html %]"
[% " selected" IF default.$name.0 == field.name %]>
[% field.description FILTER html %]</option>
[% END %]
</select> </select>
[% END %] [% END %]
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