From 26426fe87683c76702a2340bf852e8bb0eca7626 Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Mon, 1 Feb 2010 12:46:42 -0800 Subject: Bug 537746: Search criteria headers on buglist duplicate unnecessarily when bugidtype is in use Patch by Frédéric Buclin r/a=mkanat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/CGI.pm | 15 ++++++++++++--- Bugzilla/Search.pm | 9 +-------- Bugzilla/Search/Quicksearch.pm | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) (limited to 'Bugzilla') 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'); } } -- cgit v1.2.3-24-g4f1b