From b78ee211f21faa835c2865093abb88a6944c7bff Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Mon, 26 Oct 2009 00:12:23 +0000 Subject: [PATCH] =?utf8?q?Bug=20524395:=20Boolean=20charts=20And,=20Or,=20?= =?utf8?q?"add=20another=20chart"=20buttons=20do=20no=20work=20with=20JS?= =?utf8?q?=20turned=20off=20-=20Patch=20by=20Fr=C3=83=C2=A9d=C3=83=C2=A9ri?= =?utf8?q?c=20Buclin=20=20r/a=3Dmkanat?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- buglist.cgi | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/buglist.cgi b/buglist.cgi index 5ed14ec417..9499579540 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -67,7 +67,19 @@ if (length($buffer) == 0) { ThrowUserError("buglist_parameters_required"); } -# +# If a parameter starts with cmd-, this means the And or Or button has been +# pressed in the advanced search page with JS turned off. +if (grep { $_ =~ /^cmd\-/ } $cgi->param()) { + my $url = "query.cgi?$buffer#chart"; + print $cgi->redirect(-location => $url); + # Generate and return the UI (HTML page) from the appropriate template. + $vars->{'message'} = "buglist_adding_field"; + $vars->{'url'} = $url; + $template->process("global/message.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + exit; +} + # If query was POSTed, clean the URL from empty parameters and redirect back to # itself. This will make advanced search URLs more tolerable. # @@ -185,17 +197,6 @@ if (defined $cgi->param('regetlastlist')) { }); } -if ($buffer =~ /&cmd-/) { - my $url = "query.cgi?$buffer#chart"; - print $cgi->redirect(-location => $url); - # Generate and return the UI (HTML page) from the appropriate template. - $vars->{'message'} = "buglist_adding_field"; - $vars->{'url'} = $url; - $template->process("global/message.html.tmpl", $vars) - || ThrowTemplateError($template->error()); - exit; -} - # Figure out whether or not the user is doing a fulltext search. If not, # we'll remove the relevance column from the lists of columns to display # and order by, since relevance only exists when doing a fulltext search. @@ -576,7 +577,10 @@ elsif (($cmdtype eq "doit") && defined $cgi->param('remtype')) { # exists, add/remove bugs to it, else create it. But if we are # considering an existing tag, then it has to exist and we throw # an error if it doesn't (hence the usage of !$is_new_name). - if (my $old_query = LookupNamedQuery($query_name, undef, LIST_OF_BUGS, !$is_new_name)) { + my ($old_query, $query_id) = + LookupNamedQuery($query_name, undef, LIST_OF_BUGS, !$is_new_name); + + if ($old_query) { # We get the encoded query. We need to decode it. my $old_cgi = new Bugzilla::CGI($old_query); foreach my $bug_id (split /[\s,]+/, scalar $old_cgi->param('bug_id')) { @@ -600,9 +604,10 @@ elsif (($cmdtype eq "doit") && defined $cgi->param('remtype')) { # Only keep bug IDs we want to add/keep. Disregard deleted ones. my @bug_ids = grep { $bug_ids{$_} == 1 } keys %bug_ids; # If the list is now empty, we could as well delete it completely. - ThrowUserError('no_bugs_in_list', {'tag' => $query_name}) - unless scalar(@bug_ids); - + if (!scalar @bug_ids) { + ThrowUserError('no_bugs_in_list', {name => $query_name, + query_id => $query_id}); + } $new_query = "bug_id=" . join(',', sort {$a <=> $b} @bug_ids); $query_type = LIST_OF_BUGS; } -- 2.47.2