From f9f7952fc64836a8133670ea0fcb499e6e2ce98a Mon Sep 17 00:00:00 2001 From: "bzrmirror%bugzilla.org" Date: Tue, 5 Nov 2013 00:01:00 +0000 Subject: [PATCH] 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 git-svn-id: svn://10.0.0.236/trunk@265100 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/webtools/bugzilla/.bzrrev | 2 +- mozilla/webtools/bugzilla/buglist.cgi | 16 ++++++++++++++++ .../template/en/default/list/list.html.tmpl | 10 ++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/mozilla/webtools/bugzilla/.bzrrev b/mozilla/webtools/bugzilla/.bzrrev index 78e4c740caa..27902dbc22e 100644 --- a/mozilla/webtools/bugzilla/.bzrrev +++ b/mozilla/webtools/bugzilla/.bzrrev @@ -1 +1 @@ -8803 \ No newline at end of file +8804 \ No newline at end of file diff --git a/mozilla/webtools/bugzilla/buglist.cgi b/mozilla/webtools/bugzilla/buglist.cgi index eda2e988dff..4969b185829 100755 --- a/mozilla/webtools/bugzilla/buglist.cgi +++ b/mozilla/webtools/bugzilla/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/mozilla/webtools/bugzilla/template/en/default/list/list.html.tmpl b/mozilla/webtools/bugzilla/template/en/default/list/list.html.tmpl index ec453d0b7ea..514aa1c7fe2 100644 --- a/mozilla/webtools/bugzilla/template/en/default/list/list.html.tmpl +++ b/mozilla/webtools/bugzilla/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 %]