From f52b476fe9b012d4ac03acabe2e7bed22e2855ae Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Sat, 21 Jul 2007 16:48:27 +0000 Subject: [PATCH] =?utf8?q?Bug=20385003:=20Entering=20a=20tag=20name=20manu?= =?utf8?q?ally=20("create=20and=20add=20the=20tag")=20should=20not=20silen?= =?utf8?q?tly=20remove=20the=20tag=20from=20any=20other=20bugs=20(overwrit?= =?utf8?q?es)=20-=20Patch=20by=20Fr=C3=83=C2=A9d=C3=83=C2=A9ric=20Buclin?= =?utf8?q?=20=20r=3Dwurblzap=20a=3DLpSolit?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- buglist.cgi | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/buglist.cgi b/buglist.cgi index c9a4104857..96454d12cd 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -511,17 +511,22 @@ elsif (($cgi->param('cmdtype') eq "doit") && defined $cgi->param('remtype')) { } my %bug_ids; + my $is_new_name = 0; if ($query_name) { # Make sure this name is not already in use by a normal saved search. if (LookupNamedQuery($query_name, undef, QUERY_LIST, !THROW_ERROR)) { ThrowUserError('query_name_exists', {'name' => $query_name}); } + $is_new_name = 1; } - else { - # No new query name has been given. We retrieve bug IDs - # currently set in the selected saved search. - $query_name = $cgi->param('oldqueryname'); - my $old_query = LookupNamedQuery($query_name, undef, LIST_OF_BUGS); + # If no new tag name has been given, use the selected one. + $query_name ||= $cgi->param('oldqueryname'); + + # Don't throw an error if it's a new tag name: if the tag already + # 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)) { # 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')) { -- 2.47.2