]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 537746: Search criteria headers on buglist duplicate unnecessarily when bugidtype...
authorFrédéric Buclin <LpSolit@gmail.com>
Mon, 1 Feb 2010 20:46:42 +0000 (12:46 -0800)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Mon, 1 Feb 2010 20:46:42 +0000 (12:46 -0800)
Patch by Frédéric Buclin <LpSolit@gmail.com> r/a=mkanat

Bugzilla/CGI.pm
Bugzilla/Search.pm
Bugzilla/Search/Quicksearch.pm
query.cgi
template/en/default/search/form.html.tmpl

index 8a0e2efe91a7f6aa787792090131d786d4b4ed48..6e9dfd0cec601f5475a4c61b78779046a5ff0400 100644 (file)
@@ -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');
 
index e6b9e8937ac15bb042e2b11bf047bddf1e3ba659..43b95f2936d3681bfc5ae3d13c157959ea21ef71 100644 (file)
@@ -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
index bef463a3c6bcbb73606f8e8dc3e69d16fb74cd3a..e3dcc7e89842699eb493f2d2eaca366e01cd23df 100644 (file)
@@ -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');
     }
 }
 
index ba8979adc3c5092496fe98868e319eba9156959b..1cbcf0a60b1680420500d8d71ece1a8f9f14cc57 100755 (executable)
--- 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",
index 7db07fc79c5648fc69d353246bb4aa42638b6de2..ec0d2a90b39e44e3e5a669bedb1a0be0dbf995de 100644 (file)
@@ -535,9 +535,9 @@ function doOnSelectProduct(selectmode) {
 <table>
   <tr>
     <td>
-      <select name="bugidtype">
-        <option value="include"[% " selected" IF default.bugidtype.0 == "include" %]>Only include</option>
-        <option value="exclude"[% " selected" IF default.bugidtype.0 == "exclude" %]>Exclude</option>
+      <select name="bug_id_type">
+        <option value="anyexact"[% " selected" IF default.bug_id_type.0 == "anyexact" %]>Only include</option>
+        <option value="nowords"[% " selected" IF default.bug_id_type.0 == "nowords" %]>Exclude</option>
       </select>
       <label for="bug_id">[% terms.bugs %] numbered</label>:
     </td>