]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 890165 - Buglist for single component should offer "File a new bug in the XYZ...
authorSimon Green <sgreen@redhat.com>
Mon, 4 Nov 2013 23:48:48 +0000 (09:48 +1000)
committerSimon Green <sgreen@redhat.com>
Mon, 4 Nov 2013 23:48:48 +0000 (09:48 +1000)
r=glob, a=glob

buglist.cgi
template/en/default/list/list.html.tmpl

index eda2e988dfff1efdcdca08799735e7f476ce4863..4969b18582959795ea83b040c38b7cc57e66cb62 100755 (executable)
@@ -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'}) {
index ec453d0b7eabd40da2b2d5bbf18679ded99fe07a..514aa1c7fe2f390fc3f54c6b156e7cdd1804b484 100644 (file)
 [% BLOCK enter_bug_link %]
   <a href="enter_bug.cgi
            [%- IF one_product.defined %]?product=
-             [%- one_product.name FILTER uri %][% END %]">File
+             [%- one_product.name FILTER uri %]
+             [%- IF one_component.defined %]&amp;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 %]</a>
 [% END %]