From 14620dc7279cbbde4236ec4319ed0669f41aa68f Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Thu, 1 Jan 2009 19:04:52 +0000 Subject: Bug 471771: editflagtypes.cgi should display the number of flags per type - Patch by Frédéric Buclin r=justdave a=LpSolit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- editflagtypes.cgi | 15 +++++++++++++ template/en/default/admin/flag-type/list.html.tmpl | 26 ++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/editflagtypes.cgi b/editflagtypes.cgi index 4117c91e8..d77c6b8a3 100755 --- a/editflagtypes.cgi +++ b/editflagtypes.cgi @@ -100,6 +100,7 @@ sub list { my $component = validateComponent($product, scalar $cgi->param('component')); my $product_id = $product ? $product->id : 0; my $component_id = $component ? $component->id : 0; + my $show_flag_counts = (defined $cgi->param('show_flag_counts')) ? 1 : 0; # Define the variables and functions that will be passed to the UI template. $vars->{'selected_product'} = $cgi->param('product'); @@ -140,6 +141,20 @@ sub list { 'group' => scalar $cgi->param('group')}); } + if ($show_flag_counts) { + my %bug_lists; + my %map = ('+' => 'granted', '-' => 'denied', '?' => 'pending'); + + foreach my $flagtype (@$bug_flagtypes, @$attach_flagtypes) { + $bug_lists{$flagtype->id} = {}; + my $flags = Bugzilla::Flag->match({type_id => $flagtype->id}); + # Build lists of bugs, triaged by flag status. + map { push(@{$bug_lists{$flagtype->id}->{$map{$_->status}}}, $_->bug_id) } @$flags; + } + $vars->{'bug_lists'} = \%bug_lists; + $vars->{'show_flag_counts'} = 1; + } + $vars->{'bug_types'} = $bug_flagtypes; $vars->{'attachment_types'} = $attach_flagtypes; diff --git a/template/en/default/admin/flag-type/list.html.tmpl b/template/en/default/admin/flag-type/list.html.tmpl index d4bba945a..497d3b3d5 100644 --- a/template/en/default/admin/flag-type/list.html.tmpl +++ b/template/en/default/admin/flag-type/list.html.tmpl @@ -16,6 +16,7 @@ # Rights Reserved. # # Contributor(s): Myk Melez + # Frédéric Buclin #%] [% PROCESS global/variables.none.tmpl %] @@ -80,6 +81,11 @@ [% END %] + + + + @@ -114,6 +120,11 @@ Properties Grant group Request group + [% IF show_flag_counts %] + Flags + [%# Note to translators: translate the strings in quotes only. %] + [% state_desc = {granted = 'granted' denied = 'denied' pending = 'pending'} %] + [% END %] Actions @@ -136,6 +147,21 @@ [% IF type.grant_group %][% type.grant_group.name FILTER html %][% END %] [% IF type.request_group %][% type.request_group.name FILTER html %][% END %] + [% IF show_flag_counts %] + + [% FOREACH state = ['granted', 'pending', 'denied'] %] + [% bug_list = bug_lists.${type.id}.$state || [] %] + [% IF bug_list.size %] + + [% bug_list.size FILTER html %] [%+ state_desc.$state FILTER html %] + +
+ [% ELSE %] + 0 [% state_desc.$state FILTER html %]
+ [% END %] + [% END %] + + [% END %] Copy | Delete -- cgit v1.2.3-24-g4f1b