summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjustdave%syndicomm.com <>2001-07-22 09:22:36 +0200
committerjustdave%syndicomm.com <>2001-07-22 09:22:36 +0200
commit6d307a92230b025dd7eefba00d593f1eff430b5f (patch)
tree8fb54135cb781da8a0045fbc41d8a1c423514beb
parent32c74ca90011bfa5cfc781ca0879529abb3c5d30 (diff)
downloadbugzilla-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-xbuglist.cgi67
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 "&nbsp;&nbsp;&nbsp;&nbsp;";
- 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>&nbsp;</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";
+ }
}