summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2005-08-31 01:54:06 +0200
committerlpsolit%gmail.com <>2005-08-31 01:54:06 +0200
commit4bf89c1f643b49d4a1716d769718d5b05e106732 (patch)
treed55d25507dc3331bf48dc13e16452cbd3c617198
parent29a562e5c22fd8437610edb3ceafc8c93ccfd610 (diff)
downloadbugzilla-4bf89c1f643b49d4a1716d769718d5b05e106732.tar.gz
bugzilla-4bf89c1f643b49d4a1716d769718d5b05e106732.tar.xz
Bug 279738: Move GetLongDescriptionAsText() out of globals.pl - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=myk
-rw-r--r--Bugzilla/BugMail.pm53
-rw-r--r--globals.pl45
2 files changed, 52 insertions, 46 deletions
diff --git a/Bugzilla/BugMail.pm b/Bugzilla/BugMail.pm
index fc6fa2666..f1a47a3a3 100644
--- a/Bugzilla/BugMail.pm
+++ b/Bugzilla/BugMail.pm
@@ -309,7 +309,7 @@ sub ProcessOneBug {
}
- my ($newcomments, $anyprivate) = &::GetLongDescriptionAsText($id, $start, $end);
+ my ($newcomments, $anyprivate) = get_comments_by_bug($id, $start, $end);
###########################################################################
# Start of email filtering code
@@ -736,4 +736,55 @@ sub MailPassword {
MessageToMTA($msg);
}
+# Get bug comments for the given period and format them to be used in emails.
+sub get_comments_by_bug {
+ my ($id, $start, $end) = @_;
+ my $dbh = Bugzilla->dbh;
+
+ my $result = "";
+ my $count = 0;
+ my $anyprivate = 0;
+
+ my $query = 'SELECT profiles.login_name, ' .
+ $dbh->sql_date_format('longdescs.bug_when', '%Y.%m.%d %H:%i') . ',
+ longdescs.thetext, longdescs.isprivate,
+ longdescs.already_wrapped
+ FROM longdescs
+ INNER JOIN profiles ON profiles.userid = longdescs.who
+ WHERE longdescs.bug_id = ? ';
+
+ my @args = ($id);
+
+ # $start will be undef for new bugs, and defined for pre-existing bugs.
+ if ($start) {
+ # If $start is not NULL, obtain the count-index
+ # of this comment for the leading "Comment #xxx" line.
+ $count = $dbh->selectrow_array('SELECT COUNT(*) FROM longdescs
+ WHERE bug_id = ? AND bug_when <= ?',
+ undef, ($id, $start));
+
+ $query .= ' AND longdescs.bug_when > ?
+ AND longdescs.bug_when <= ? ';
+ push @args, ($start, $end);
+ }
+
+ $query .= ' ORDER BY longdescs.bug_when';
+ my $comments = $dbh->selectall_arrayref($query, undef, @args);
+
+ foreach (@$comments) {
+ my ($who, $when, $text, $isprivate, $already_wrapped) = @$_;
+ if ($count) {
+ $result .= "\n\n------- Comment #$count from $who" .
+ Param('emailsuffix'). " " . format_time($when) .
+ " -------\n";
+ }
+ if ($isprivate > 0 && Param('insidergroup')) {
+ $anyprivate = 1;
+ }
+ $result .= ($already_wrapped ? $text : wrap_comment($text));
+ $count++;
+ }
+ return ($result, $anyprivate);
+}
+
1;
diff --git a/globals.pl b/globals.pl
index 6e9dcbeba..ae0a54260 100644
--- a/globals.pl
+++ b/globals.pl
@@ -954,51 +954,6 @@ sub GetBugLink {
}
}
-sub GetLongDescriptionAsText {
- my ($id, $start, $end) = (@_);
- my $result = "";
- my $count = 0;
- my $anyprivate = 0;
- my $dbh = Bugzilla->dbh;
- my ($query) = ("SELECT profiles.login_name, " .
- $dbh->sql_date_format('longdescs.bug_when', '%Y.%m.%d %H:%i') . ", " .
- " longdescs.thetext, longdescs.isprivate, " .
- " longdescs.already_wrapped " .
- "FROM longdescs, profiles " .
- "WHERE profiles.userid = longdescs.who " .
- "AND longdescs.bug_id = $id ");
-
- # $start will be undef for New bugs, and defined for pre-existing bugs.
- if ($start) {
- # If $start is not NULL, obtain the count-index
- # of this comment for the leading "Comment #xxx" line.)
- SendSQL("SELECT count(*) FROM longdescs " .
- " WHERE bug_id = $id AND bug_when <= '$start'");
- ($count) = (FetchSQLData());
-
- $query .= " AND longdescs.bug_when > '$start'"
- . " AND longdescs.bug_when <= '$end' ";
- }
-
- $query .= "ORDER BY longdescs.bug_when";
- SendSQL($query);
- while (MoreSQLData()) {
- my ($who, $when, $text, $isprivate, $work_time, $already_wrapped) =
- (FetchSQLData());
- if ($count) {
- $result .= "\n\n------- Comment #$count from $who".Param('emailsuffix')." ".
- Bugzilla::Util::format_time($when) . " -------\n";
- }
- if (($isprivate > 0) && Param("insidergroup")) {
- $anyprivate = 1;
- }
- $result .= ($already_wrapped ? $text : wrap_comment($text));
- $count++;
- }
-
- return ($result, $anyprivate);
-}
-
# Returns a list of all the legal values for a field that has a
# list of legal values, like rep_platform or resolution.
sub get_legal_field_values {