Commit 14620dc7 authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 471771: editflagtypes.cgi should display the number of flags per type -…

Bug 471771: editflagtypes.cgi should display the number of flags per type - Patch by Fré©ric Buclin <LpSolit@gmail.com> r=justdave a=LpSolit
parent 032b9593
......@@ -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;
......
......@@ -16,6 +16,7 @@
# Rights Reserved.
#
# Contributor(s): Myk Melez <myk@mozilla.org>
# Frédéric Buclin <LpSolit@gmail.com>
#%]
[% PROCESS global/variables.none.tmpl %]
......@@ -80,6 +81,11 @@
[% END %]
</select>
</td>
<td>
<input type="checkbox" id="show_flag_counts" name="show_flag_counts" value="1"
[%+ 'checked="checked"' IF show_flag_counts %]>
<label for="show_flag_counts">Show flag counts</label>
</td>
<td><input type="submit" id="submit" value="Filter"></td>
</tr>
</table>
......@@ -114,6 +120,11 @@
<th>Properties</th>
<th>Grant group</th>
<th>Request group</th>
[% IF show_flag_counts %]
<th>Flags</th>
[%# Note to translators: translate the strings in quotes only. %]
[% state_desc = {granted = 'granted' denied = 'denied' pending = 'pending'} %]
[% END %]
<th>Actions</th>
</tr>
......@@ -136,6 +147,21 @@
</td>
<td>[% IF type.grant_group %][% type.grant_group.name FILTER html %][% END %]</td>
<td>[% IF type.request_group %][% type.request_group.name FILTER html %][% END %]</td>
[% IF show_flag_counts %]
<td>
[% FOREACH state = ['granted', 'pending', 'denied'] %]
[% bug_list = bug_lists.${type.id}.$state || [] %]
[% IF bug_list.size %]
<a href="buglist.cgi?bug_id=[% bug_list.unique.nsort.join(",") FILTER html %]">
[% bug_list.size FILTER html %] [%+ state_desc.$state FILTER html %]
</a>
<br>
[% ELSE %]
0 [% state_desc.$state FILTER html %]<br>
[% END %]
[% END %]
</td>
[% END %]
<td>
<a href="editflagtypes.cgi?action=copy&amp;id=[% type.id %]">Copy</a>
| <a href="editflagtypes.cgi?action=confirmdelete&amp;id=[% type.id %]">Delete</a>
......
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