From 20c30bdcfbe368242694b297cf6d4b697b739257 Mon Sep 17 00:00:00 2001 From: "bbaetz%student.usyd.edu.au" <> Date: Tue, 16 Apr 2002 15:29:01 +0000 Subject: bug 117718 - Mass Change removes a bugs groupset if the bug was in the wrong product group r=justdave x2 --- process_bug.cgi | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/process_bug.cgi b/process_bug.cgi index fe9163eef..ebdf43b77 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -445,10 +445,18 @@ if($::usergroupset ne '0') { SendSQL("SELECT bit, isactive FROM groups WHERE " . "isbuggroup != 0 AND bit & $::usergroupset != 0 ORDER BY bit"); while (my ($b, $isactive) = FetchSQLData()) { - if (!$::FORM{"bit-$b"}) { - $groupDel .= "+$b"; - } elsif ($::FORM{"bit-$b"} == 1 && $isactive) { - $groupAdd .= "+$b"; + # The multiple change page may not show all groups a bug is in + # (eg product groups when listing more than one product) + # Only consider groups which were present on the form. We can't do this + # for single bug changes because non-checked checkboxes aren't present. + # All the checkboxes should be shown in that case, though, so its not + # an issue there + if ($::FORM{'id'} || exists $::FORM{"bit-$b"}) { + if (!$::FORM{"bit-$b"}) { + $groupDel .= "+$b"; + } elsif ($::FORM{"bit-$b"} == 1 && $isactive) { + $groupAdd .= "+$b"; + } } } if ($groupAdd ne "0" || $groupDel ne "0") { -- cgit v1.2.1