From: Simon Green Date: Mon, 4 Nov 2013 23:48:48 +0000 (+1000) Subject: Bug 890165 - Buglist for single component should offer "File a new bug in the XYZ... X-Git-Tag: bugzilla-4.5.2~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5189d82750da1b7d336bedf21927970feac0ee17;p=thirdparty%2Fbugzilla.git Bug 890165 - Buglist for single component should offer "File a new bug in the XYZ component" instead of "File a new bug in the XYZ product" r=glob, a=glob --- diff --git a/buglist.cgi b/buglist.cgi index eda2e988df..4969b18582 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -766,6 +766,7 @@ my $time_info = { 'estimated_time' => 0, my $bugowners = {}; my $bugproducts = {}; +my $bugcomponents = {}; my $bugstatuses = {}; my @bugidlist; @@ -798,6 +799,7 @@ foreach my $row (@$data) { # Record the assignee, product, and status in the big hashes of those things. $bugowners->{$bug->{'assigned_to'}} = 1 if $bug->{'assigned_to'}; $bugproducts->{$bug->{'product'}} = 1 if $bug->{'product'}; + $bugcomponents->{$bug->{'component'}} = 1 if $bug->{'component'}; $bugstatuses->{$bug->{'bug_status'}} = 1 if $bug->{'bug_status'}; $bug->{'secure_mode'} = undef; @@ -930,6 +932,20 @@ if ($one_product && $user->can_enter_product($one_product)) { $vars->{'one_product'} = $one_product; } +# See if there's only one component in all the results (or only one component +# that we searched for), which allows us to provide more helpful links. +my @components = keys %$bugcomponents; +my $one_component; +if (scalar(@components) == 1) { + $vars->{one_component} = $components[0]; +} +# This is used in the "Zarroo Boogs" case. +elsif (my @component_input = $cgi->param('component')) { + if (scalar(@component_input) == 1 and $component_input[0] ne '') { + $vars->{one_component}= $cgi->param('component'); + } +} + # The following variables are used when the user is making changes to multiple bugs. if ($dotweak && scalar @bugs) { if (!$vars->{'caneditbugs'}) { diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl index ec453d0b7e..514aa1c7fe 100644 --- a/template/en/default/list/list.html.tmpl +++ b/template/en/default/list/list.html.tmpl @@ -313,10 +313,16 @@ [% BLOCK enter_bug_link %] File + [%- one_product.name FILTER uri %] + [%- IF one_component.defined %]&component= + [%- one_component FILTER uri %][% END %][% END %]">File a new [% terms.bug %] [% IF one_product.defined %] - in the "[% one_product.name FILTER html %]" product + in the + [% IF one_component.defined %] + "[% one_component FILTER html %]" component of the + [% END %] + "[% one_product.name FILTER html %]" product [% END %] [% END %]