summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuglist.cgi16
-rw-r--r--template/en/default/list/list.html.tmpl10
2 files changed, 24 insertions, 2 deletions
diff --git a/buglist.cgi b/buglist.cgi
index eda2e988d..4969b1858 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 ec453d0b7..514aa1c7f 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 %]
<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 %]