diff options
-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"; + } } |