diff options
author | justdave%syndicomm.com <> | 2001-07-22 09:22:36 +0200 |
---|---|---|
committer | justdave%syndicomm.com <> | 2001-07-22 09:22:36 +0200 |
commit | 6d307a92230b025dd7eefba00d593f1eff430b5f (patch) | |
tree | 8fb54135cb781da8a0045fbc41d8a1c423514beb | |
parent | 32c74ca90011bfa5cfc781ca0879529abb3c5d30 (diff) | |
download | bugzilla-6d307a92230b025dd7eefba00d593f1eff430b5f.tar.gz bugzilla-6d307a92230b025dd7eefba00d593f1eff430b5f.tar.xz |
Fix for bug 84714 and bug 88797: You can now change bug groups from the "change several bugs" form even if the bugs aren't all in the same groups. Also, the groups are no longer cleared when you make a change from the "change several bugs" form (unless you tell it to)
Patch by Joe Robins <jmrobins@tgix.com> and Dave Miller <justdave@syndicomm.com>
r= zach@zachlipton.com
a= justdave@syndicomm.com
-rwxr-xr-x | buglist.cgi | 67 |
1 files changed, 46 insertions, 21 deletions
diff --git a/buglist.cgi b/buglist.cgi index ea3ec2049..12bb84922 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -1154,7 +1154,6 @@ my %seen; my @bugarray; my %prodhash; my %statushash; -my $buggroupset = ""; my %ownerhash; my $pricol = -1; @@ -1174,14 +1173,6 @@ my @weekday= qw( Sun Mon Tue Wed Thu Fri Sat ); while (@row = FetchSQLData()) { my $bug_id = shift @row; my $g = shift @row; # Bug's group set. - if ($buggroupset eq "") { - $buggroupset = $g; - } elsif ($buggroupset ne $g) { - $buggroupset = "x"; # We only play games with tweaking the - # buggroupset if all the bugs have exactly - # the same group. If they don't, we leave - # it alone. - } if (!defined $seen{$bug_id}) { $seen{$bug_id} = 1; $count++; @@ -1460,22 +1451,56 @@ document.write(\" <input type=button value=\\\"Uncheck All\\\" onclick=\\\"SetCh <BR> <TEXTAREA WRAP=HARD NAME=comment ROWS=5 COLS=80></TEXTAREA><BR>"; -if ($::usergroupset ne '0' && $buggroupset =~ /^\d+$/) { - SendSQL("select bit, description, (bit & $buggroupset != 0) from groups where bit & $::usergroupset != 0 and isbuggroup != 0 order by description"); +if($::usergroupset ne '0') { + SendSQL("select bit, name, description, isactive ". + "from groups where bit & $::usergroupset != 0 ". + "and isbuggroup != 0 ". + "order by description"); # We only print out a header bit for this section if there are any # results. - if(MoreSQLData()) { - print "<br><b>Only users in the selected groups can view this bug:</b><br>\n"; - } + my $groupFound = 0; + my $inactiveFound = 0; while (MoreSQLData()) { - my ($bit, $description, $ison) = (FetchSQLData()); - # Modifying this to use checkboxes instead - my $checked = $ison ? " CHECKED" : ""; - # indent these a bit - print " "; - print "<input type=checkbox name=\"bit-$bit\" value=1$checked>\n"; - print "$description<br>\n"; + my ($bit, $groupname, $description, $isactive) = (FetchSQLData()); + if(($prodhash{$groupname}) || (!defined($::proddesc{$groupname}))) { + if(!$groupFound) { + print "<B>Groupset:</B><BR>\n"; + print "<TABLE BORDER=1><TR>\n"; + print "<TH ALIGN=center VALIGN=middle>Don't<br>change<br>this group<br>restriction</TD>\n"; + print "<TH ALIGN=center VALIGN=middle>Remove<br>bugs<br>from this<br>group</TD>\n"; + print "<TH ALIGN=center VALIGN=middle>Add<br>bugs<br>to this<br>group</TD>\n"; + print "<TH ALIGN=left VALIGN=middle>Group name:</TD></TR>\n"; + $groupFound = 1; + } + # Modifying this to use radio buttons instead + print "<TR>"; + print "<TD ALIGN=center><input type=radio name=\"bit-$bit\" value=\"-1\" checked></TD>\n"; + print "<TD ALIGN=center><input type=radio name=\"bit-$bit\" value=\"0\"></TD>\n"; + if ($isactive) { + print "<TD ALIGN=center><input type=radio name=\"bit-$bit\" value=\"1\"></TD>\n"; + } else { + $inactiveFound = 1; + print "<TD> </TD>\n"; + } + print "<TD>"; + if(!$isactive) { + print "<I>"; + } + print "$description"; + if(!$isactive) { + print "</I>"; + } + print "</TD></TR>\n"; + } + } + # Add in some blank space for legibility + if($groupFound) { + print "</TABLE>\n"; + if ($inactiveFound) { + print "<FONT SIZE=\"-1\">(Note: Bugs may not be added to inactive groups (<I>italicized</I>), only removed)</FONT><BR>\n"; } + print "<BR><BR>\n"; + } } |