From: Frédéric Buclin Date: Mon, 1 Feb 2010 20:46:42 +0000 (-0800) Subject: Bug 537746: Search criteria headers on buglist duplicate unnecessarily when bugidtype... X-Git-Tag: bugzilla-3.5.3~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26426fe87683c76702a2340bf852e8bb0eca7626;p=thirdparty%2Fbugzilla.git Bug 537746: Search criteria headers on buglist duplicate unnecessarily when bugidtype is in use Patch by Frédéric Buclin r/a=mkanat --- diff --git a/Bugzilla/CGI.pm b/Bugzilla/CGI.pm index 8a0e2efe91..6e9dfd0cec 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 e6b9e8937a..43b95f2936 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 bef463a3c6..e3dcc7e898 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'); } } diff --git a/query.cgi b/query.cgi index ba8979adc3..1cbcf0a60b 100755 --- a/query.cgi +++ b/query.cgi @@ -131,7 +131,7 @@ sub PrefillForm { "longdesc", "longdesc_type", "bug_file_loc", "bug_file_loc_type", "status_whiteboard", "status_whiteboard_type", "bug_id", - "bugidtype", "keywords", "keywords_type", + "bug_id_type", "keywords", "keywords_type", "deadlinefrom", "deadlineto", "x_axis_field", "y_axis_field", "z_axis_field", "chart_format", "cumulate", "x_labels_vertical", diff --git a/template/en/default/search/form.html.tmpl b/template/en/default/search/form.html.tmpl index 7db07fc79c..ec0d2a90b3 100644 --- a/template/en/default/search/form.html.tmpl +++ b/template/en/default/search/form.html.tmpl @@ -535,9 +535,9 @@ function doOnSelectProduct(selectmode) {
- + + :