]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 448690: Changing columns after editing a saved search forgets edits - Patch by...
authorwicked%sci.fi <>
Tue, 14 Jul 2009 04:01:27 +0000 (04:01 +0000)
committerwicked%sci.fi <>
Tue, 14 Jul 2009 04:01:27 +0000 (04:01 +0000)
colchange.cgi
query.cgi
template/en/default/search/knob.html.tmpl

index 5e84dcc2cb7676436a5bbbe446e073b2b66d15d8..108c3db6d2a887f8bc7099fc61145c323ba8bbab 100755 (executable)
@@ -142,14 +142,12 @@ if (defined $cgi->param('rememberedquery')) {
         $params->param('columnlist', join(",", @collist));
         $search->set_url($params->query_string());
         $search->update();
-        $vars->{'redirect_url'} = "buglist.cgi?".$cgi->param('rememberedquery');
-    }
-    else {
-        my $params = new Bugzilla::CGI($cgi->param('rememberedquery'));
-        $params->param('columnlist', join(",", @collist));
-        $vars->{'redirect_url'} = "buglist.cgi?".$params->query_string();
     }
 
+    my $params = new Bugzilla::CGI($cgi->param('rememberedquery'));
+    $params->param('columnlist', join(",", @collist));
+    $vars->{'redirect_url'} = "buglist.cgi?".$params->query_string();
+
 
     # If we're running on Microsoft IIS, using cgi->redirect discards
     # the Set-Cookie lines -- workaround is to use the old-fashioned 
@@ -169,7 +167,9 @@ if (defined $cgi->param('rememberedquery')) {
     exit;
 }
 
-if (defined $cgi->cookie('COLUMNLIST')) {
+if (defined $cgi->param('columnlist')) {
+    @collist = split(/[ ,]+/, $cgi->param('columnlist'));
+} elsif (defined $cgi->cookie('COLUMNLIST')) {
     @collist = split(/ /, $cgi->cookie('COLUMNLIST'));
 } else {
     @collist = DEFAULT_COLUMN_LIST;
@@ -188,13 +188,6 @@ if (defined $cgi->param('query_based_on')) {
     # Only allow users to edit their own queries.
     if ($search && $search->user->id == Bugzilla->user->id) {
         $vars->{'saved_search'} = $search;
-        $vars->{'buffer'} = "cmdtype=runnamed&namedcmd=". url_quote($search->name);
-
-        my $params = new Bugzilla::CGI($search->url);
-        if ($params->param('columnlist')) {
-            my @collist = split(',', $params->param('columnlist'));
-            $vars->{'collist'} = \@collist if scalar (@collist);
-        }
     }
 }
 
index 5998c31abb3fa01d76ebe649c3f0879ca08d07f3..dde9449dc2c840c0e2e97daebb288757733d2dbf 100755 (executable)
--- a/query.cgi
+++ b/query.cgi
@@ -344,6 +344,7 @@ if (($cgi->param('query_format') || $cgi->param('format') || "")
 }
 
 $vars->{'known_name'} = $cgi->param('known_name');
+$vars->{'columnlist'} = $cgi->param('columnlist');
 
 
 # Add in the defaults.
index d0381e1a4fb11167873379719ba26f62b951f076..17ff63a1045bb116654e007eed4ca32be8d96ba9 100644 (file)
     [%# The name of the existing query will be passed to buglist.cgi. %]
     <input type="hidden" name="query_based_on" value="[% known_name FILTER html %]">
   [% END %]
+  [%# Preserve any custom column list that might be set. %]
+  [% IF columnlist %]
+    <input type="hidden" name="columnlist" value="[% columnlist FILTER html %]">
+  [% END %]
 </p>
 
 <p>