]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 443306: Unused fields should not show up in boolean charts
authorSunil Joshi <joshi_sunil@in.com>
Sun, 2 Dec 2012 19:27:52 +0000 (20:27 +0100)
committerFrédéric Buclin <LpSolit@gmail.com>
Sun, 2 Dec 2012 19:27:52 +0000 (20:27 +0100)
r/a=LpSolit

query.cgi

index b62f77b531d2eed4deb048d08d991f09a634e38e..9c53e215160fe15edf25f5ba5b06920afe6cbf8b 100755 (executable)
--- a/query.cgi
+++ b/query.cgi
@@ -206,13 +206,27 @@ $vars->{'resolution'} = Bugzilla::Field->new({name => 'resolution'})->legal_valu
 # Boolean charts
 my @fields = @{ Bugzilla->fields({ obsolete => 0 }) };
 
+my %exclude_fields = ();
+
 # If we're not in the time-tracking group, exclude time-tracking fields.
 if (!$user->is_timetracker) {
     foreach my $tt_field (TIMETRACKING_FIELDS) {
-        @fields = grep($_->name ne $tt_field, @fields);
+        $exclude_fields{$tt_field} = 1;
     }
 }
 
+# Exclude fields turned off by params
+my %param_controlled_fields = ('useqacontact'        => 'qa_contact',
+                               'usetargetmilestone'  => 'target_milestone',
+                               'useclassification'   => 'classification',
+                               'usestatuswhiteboard' => 'status_whiteboard');
+
+while (my ($param, $field) = each %param_controlled_fields) {
+    $exclude_fields{$field} = 1 unless Bugzilla->params->{$param};
+}
+
+@fields = grep(!$exclude_fields{$_->name}, @fields);
+
 @fields = sort {lc($a->description) cmp lc($b->description)} @fields;
 unshift(@fields, { name => "noop", description => "---" });
 $vars->{'fields'} = \@fields;