Commit 80e765fb authored by travis%sedsystems.ca's avatar travis%sedsystems.ca

Bug 279740 : Move CountOpenDependencies out of globals.pl

Patch by Max Kanat-Alexander <mkanat@kerio.com> r=wurblzap a=justdave
parent 6139fe45
...@@ -536,6 +536,32 @@ sub GetComments { ...@@ -536,6 +536,32 @@ sub GetComments {
return \@comments; return \@comments;
} }
# CountOpenDependencies counts the number of open dependent bugs for a
# list of bugs and returns a list of bug_id's and their dependency count
# It takes one parameter:
# - A list of bug numbers whose dependencies are to be checked
sub CountOpenDependencies {
my (@bug_list) = @_;
my @dependencies;
my $dbh = Bugzilla->dbh;
my $sth = $dbh->prepare(
"SELECT blocked, count(bug_status) " .
"FROM bugs, dependencies " .
"WHERE blocked IN (" . (join "," , @bug_list) . ") " .
"AND bug_id = dependson " .
"AND bug_status IN ('" . (join "','", &::OpenStates()) . "') " .
"GROUP BY blocked ");
$sth->execute();
while (my ($bug_id, $dependencies) = $sth->fetchrow_array()) {
push(@dependencies, { bug_id => $bug_id,
dependencies => $dependencies });
}
return @dependencies;
}
sub AUTOLOAD { sub AUTOLOAD {
use vars qw($AUTOLOAD); use vars qw($AUTOLOAD);
my $attr = $AUTOLOAD; my $attr = $AUTOLOAD;
......
...@@ -999,38 +999,6 @@ sub GetBugLink { ...@@ -999,38 +999,6 @@ sub GetBugLink {
} }
} }
# CountOpenDependencies counts the number of open dependent bugs for a
# list of bugs and returns a list of bug_id's and their dependency count
# It takes one parameter:
# - A list of bug numbers whose dependencies are to be checked
sub CountOpenDependencies {
my (@bug_list) = @_;
my @dependencies;
# Make sure any unfetched data from a currently running query
# is saved off rather than overwritten
PushGlobalSQLState();
SendSQL("SELECT blocked, count(bug_status) " .
"FROM bugs, dependencies " .
"WHERE blocked IN (" . (join "," , @bug_list) . ") " .
"AND bug_id = dependson " .
"AND bug_status IN ('" . (join "','", OpenStates()) . "') " .
"GROUP BY blocked ");
while (MoreSQLData()) {
my ($bug_id, $dependencies) = FetchSQLData();
push(@dependencies, { bug_id => $bug_id,
dependencies => $dependencies });
}
# All done with this sidetrip
PopGlobalSQLState();
return @dependencies;
}
sub GetLongDescriptionAsText { sub GetLongDescriptionAsText {
my ($id, $start, $end) = (@_); my ($id, $start, $end) = (@_);
my $result = ""; my $result = "";
......
...@@ -935,7 +935,7 @@ SWITCH: for ($::FORM{'knob'}) { ...@@ -935,7 +935,7 @@ SWITCH: for ($::FORM{'knob'}) {
if (Param("noresolveonopenblockers") if (Param("noresolveonopenblockers")
&& $::FORM{'resolution'} eq 'FIXED') && $::FORM{'resolution'} eq 'FIXED')
{ {
my @dependencies = CountOpenDependencies(@idlist); my @dependencies = Bugzilla::Bug::CountOpenDependencies(@idlist);
if (scalar @dependencies > 0) { if (scalar @dependencies > 0) {
ThrowUserError("still_unresolved_bugs", ThrowUserError("still_unresolved_bugs",
{ dependencies => \@dependencies, { dependencies => \@dependencies,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment