diff options
author | Frédéric Buclin <LpSolit@gmail.com> | 2010-02-01 21:46:42 +0100 |
---|---|---|
committer | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-02-01 21:46:42 +0100 |
commit | 26426fe87683c76702a2340bf852e8bb0eca7626 (patch) | |
tree | 4f683c215ee1e65dd1c24ba4fb460031030e5ba4 /Bugzilla | |
parent | ad31a5706aed1cee3fa5c54733b1244a86042c7f (diff) | |
download | bugzilla-26426fe87683c76702a2340bf852e8bb0eca7626.tar.gz bugzilla-26426fe87683c76702a2340bf852e8bb0eca7626.tar.xz |
Bug 537746: Search criteria headers on buglist duplicate unnecessarily when bugidtype is in use
Patch by Frédéric Buclin <LpSolit@gmail.com> r/a=mkanat
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/CGI.pm | 15 | ||||
-rw-r--r-- | Bugzilla/Search.pm | 9 | ||||
-rw-r--r-- | Bugzilla/Search/Quicksearch.pm | 2 |
3 files changed, 14 insertions, 12 deletions
diff --git a/Bugzilla/CGI.pm b/Bugzilla/CGI.pm index 8a0e2efe9..6e9dfd0ce 100644 --- a/Bugzilla/CGI.pm +++ b/Bugzilla/CGI.pm @@ -110,6 +110,7 @@ sub new { sub canonicalise_query { my ($self, @exclude) = @_; + $self->convert_old_params(); # Reconstruct the URL by concatenating the sorted param=value pairs my @parameters; foreach my $key (sort($self->param())) { @@ -134,6 +135,17 @@ sub canonicalise_query { return join("&", @parameters); } +sub convert_old_params { + my $self = shift; + + # bugidtype is now bug_id_type. + if ($self->param('bugidtype')) { + my $value = $self->param('bugidtype') eq 'exclude' ? 'nowords' : 'anyexact'; + $self->param('bug_id_type', $value); + $self->delete('bugidtype'); + } +} + sub clean_search_url { my $self = shift; # Delete any empty URL parameter. @@ -153,9 +165,6 @@ sub clean_search_url { } } - # Delete certain parameters if the associated parameter is empty. - $self->delete('bugidtype') if !$self->param('bug_id'); - # Delete leftovers from the login form $self->delete('Bugzilla_remember', 'GoAheadAndLogIn'); diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index e6b9e8937..43b95f293 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -194,6 +194,7 @@ sub init { my $self = shift; my @fields = @{ $self->{'fields'} || [] }; my $params = $self->{'params'}; + $params->convert_old_params(); $self->{'user'} ||= Bugzilla->user; my $user = $self->{'user'}; @@ -290,14 +291,6 @@ sub init { } } - if ($params->param('bug_id')) { - my $type = "anyexact"; - if ($params->param('bugidtype') && $params->param('bugidtype') eq 'exclude') { - $type = "nowords"; - } - push(@specialchart, ["bug_id", $type, join(',', $params->param('bug_id'))]); - } - # If the user has selected all of either status or resolution, change to # selecting none. This is functionally equivalent, but quite a lot faster. # Also, if the status is __open__ or __closed__, translate those diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm index bef463a3c..e3dcc7e89 100644 --- a/Bugzilla/Search/Quicksearch.pm +++ b/Bugzilla/Search/Quicksearch.pm @@ -232,7 +232,7 @@ sub _bug_numbers_only { # List of bug numbers. $cgi->param('bug_id', $searchstring); $cgi->param('order', 'bugs.bug_id'); - $cgi->param('bugidtype', 'include'); + $cgi->param('bug_id_type', 'include'); } } |