From 64284ff52f5c705d7ea60d6479f4df7ff6dde6c3 Mon Sep 17 00:00:00 2001 From: "travis%sedsystems.ca" Date: Tue, 1 Feb 2005 17:43:26 +0000 Subject: [PATCH] Bug 279740 : Move CountOpenDependencies out of globals.pl Patch by Max Kanat-Alexander r=wurblzap a=justdave git-svn-id: svn://10.0.0.236/trunk@168643 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/webtools/bugzilla/Bugzilla/Bug.pm | 26 ++++++++++++++++++ mozilla/webtools/bugzilla/globals.pl | 32 ----------------------- mozilla/webtools/bugzilla/process_bug.cgi | 2 +- 3 files changed, 27 insertions(+), 33 deletions(-) diff --git a/mozilla/webtools/bugzilla/Bugzilla/Bug.pm b/mozilla/webtools/bugzilla/Bugzilla/Bug.pm index ad48e763f17..8f08d8c2569 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/Bug.pm +++ b/mozilla/webtools/bugzilla/Bugzilla/Bug.pm @@ -536,6 +536,32 @@ sub GetComments { 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 { use vars qw($AUTOLOAD); my $attr = $AUTOLOAD; diff --git a/mozilla/webtools/bugzilla/globals.pl b/mozilla/webtools/bugzilla/globals.pl index 1529a0f6aae..b48963412ef 100644 --- a/mozilla/webtools/bugzilla/globals.pl +++ b/mozilla/webtools/bugzilla/globals.pl @@ -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 { my ($id, $start, $end) = (@_); my $result = ""; diff --git a/mozilla/webtools/bugzilla/process_bug.cgi b/mozilla/webtools/bugzilla/process_bug.cgi index 2efc62d5937..c560e90ffef 100755 --- a/mozilla/webtools/bugzilla/process_bug.cgi +++ b/mozilla/webtools/bugzilla/process_bug.cgi @@ -935,7 +935,7 @@ SWITCH: for ($::FORM{'knob'}) { if (Param("noresolveonopenblockers") && $::FORM{'resolution'} eq 'FIXED') { - my @dependencies = CountOpenDependencies(@idlist); + my @dependencies = Bugzilla::Bug::CountOpenDependencies(@idlist); if (scalar @dependencies > 0) { ThrowUserError("still_unresolved_bugs", { dependencies => \@dependencies,