aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgerv%gerv.net <>2001-10-16 10:09:52 +0000
committergerv%gerv.net <>2001-10-16 10:09:52 +0000
commitda34d05d207103b049ca2c6169e576d1c24774aa (patch)
tree836eb24d4557f4f0989587ce6198b6020f7c2113 /showdependencytree.cgi
parentFix for bug 98146. (diff)
downloadbugzilla-da34d05d207103b049ca2c6169e576d1c24774aa.tar.gz
bugzilla-da34d05d207103b049ca2c6169e576d1c24774aa.tar.bz2
bugzilla-da34d05d207103b049ca2c6169e576d1c24774aa.zip
Bug 30480 - add 'show dependencies as buglist' links. Patch by gerv, r=myk, kiko.
Diffstat (limited to 'showdependencytree.cgi')
-rwxr-xr-xshowdependencytree.cgi18
1 files changed, 14 insertions, 4 deletions
diff --git a/showdependencytree.cgi b/showdependencytree.cgi
index 14d504567..c493508c0 100755
--- a/showdependencytree.cgi
+++ b/showdependencytree.cgi
@@ -28,8 +28,6 @@ use strict;
use lib qw(.);
require "CGI.pl";
-# Shut up misguided -w warnings about "used only once":
-
use vars %::FORM;
ConnectToDatabase();
@@ -63,6 +61,9 @@ if ($hide_resolved !~ /^\d+$/ || $hide_resolved != 1) { $hide_resolved = 0 };
# A hash to count visited bugs, and also to avoid processing repeated bugs
my %seen;
+# A hash to keep track of the bugs we print for the 'as buglist' links.
+my %printed;
+
# HTML output generated in the parse of the dependency tree. This is a
# global only to avoid excessive complication in the recursion invocation
my $html;
@@ -92,6 +93,7 @@ my $scriptname = $::ENV{'SCRIPT_NAME'}; # showdependencytree.cgi
# html: Bug descriptions are appended here
# realdepth: We set the maximum depth of recursion reached
# seen: We store the bugs analyzed so far
+# printed: We store those bugs we actually print, for the "buglist" link
# Globals Referenced
# maxdepth
# hide_resolved
@@ -161,6 +163,8 @@ sub DumpKids {
$short_desc.</a>\n|;
}
if (! $opened) { $html .= "</span></strike>"; }
+
+ $printed{$kid} = 1;
} # End hideable output
# Store the maximum depth so far
@@ -197,6 +201,7 @@ sub makeTreeHTML {
# Clean up globals for this run
$html = "";
%seen = ();
+ %printed = ();
DumpKids($i, $target);
my $tmphtml = $html;
@@ -205,6 +210,11 @@ sub makeTreeHTML {
$html = "<h3>Bugs that bug $linked_id ".($target eq "blocked" ?
"blocks" : "depends on");
+ if ((scalar keys %printed) > 0) {
+ $html .= ' (<a href="buglist.cgi?bug_id=' . join(',', keys %printed) .
+ '">view as bug list</a>)';
+ }
+
# Provide feedback for omitted bugs
if ($maxdepth || $hide_resolved) {
$html .= " <small><b>(Only ";
@@ -218,7 +228,7 @@ sub makeTreeHTML {
$html .= $tmphtml;
# If no bugs were found, say so
- if ((scalar keys %seen) < 2) {
+ if ((scalar keys %printed) == 0) {
$html .= "&nbsp;&nbsp;&nbsp;&nbsp;None<p>\n";
}
@@ -296,7 +306,7 @@ sub drawDepForm {
<form method="get" action="$scriptname"
style="display: inline; margin: 0px;">
- <!-- Limit entry form: the button can't do anything when total depth
+ <!-- Limit entry form: the button can not do anything when total depth
is less than two, so disable it -->
<input name="maxdepth" size="4" maxlength="4" value="|
. ( $maxdepth > 0 ? $maxdepth : "" ) . qq|">