summaryrefslogtreecommitdiffstats
path: root/extensions/MyDashboard/lib/WebService.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/MyDashboard/lib/WebService.pm')
-rw-r--r--extensions/MyDashboard/lib/WebService.pm27
1 files changed, 26 insertions, 1 deletions
diff --git a/extensions/MyDashboard/lib/WebService.pm b/extensions/MyDashboard/lib/WebService.pm
index 853ef2baf..07619e705 100644
--- a/extensions/MyDashboard/lib/WebService.pm
+++ b/extensions/MyDashboard/lib/WebService.pm
@@ -9,7 +9,7 @@ package Bugzilla::Extension::MyDashboard::WebService;
use strict;
use warnings;
-use base qw(Bugzilla::WebService);
+use base qw(Bugzilla::WebService Bugzilla::WebService::Bug);
use Bugzilla::Constants;
use Bugzilla::Error;
@@ -92,6 +92,7 @@ sub prod_comp_search {
sub run_bug_query {
my($self, $params) = @_;
+ my $dbh = Bugzilla->dbh;
my $user = Bugzilla->login(LOGIN_REQUIRED);
defined $params->{query}
@@ -103,6 +104,30 @@ sub run_bug_query {
foreach my $qdef (QUERY_DEFS) {
next if $qdef->{name} ne $params->{query};
my ($bugs, $query_string) = query_bugs($qdef);
+
+ # Add last changes to each bug
+ foreach my $b (@$bugs) {
+ my $last_changes = {};
+ my $activity = $self->history({ ids => [ $b->{bug_id} ],
+ start_time => $b->{changeddate} });
+ if (@{$activity->{bugs}[0]{history}}) {
+ $last_changes->{activity} = $activity->{bugs}[0]{history}[0]{changes};
+ $last_changes->{email} = $activity->{bugs}[0]{history}[0]{who};
+ $last_changes->{when} = $activity->{bugs}[0]{history}[0]{when};
+ }
+ my $last_comment_id = $dbh->selectrow_array("
+ SELECT comment_id FROM longdescs
+ WHERE bug_id = ? AND bug_when >= ?",
+ undef, $b->{bug_id}, $b->{changeddate});
+ if ($last_comment_id) {
+ my $comments = $self->comments({ comment_ids => [ $last_comment_id ] });
+ $last_changes->{comment} = $comments->{comments}{$last_comment_id}{text};
+ $last_changes->{email} = $comments->{comments}{$last_comment_id}{creator} if !$last_changes->{email};
+ $last_changes->{when} = $comments->{comments}{$last_comment_id}{creation_time} if !$last_changes->{when};
+ }
+ $b->{last_changes} = $last_changes;
+ }
+
$query_string =~ s/^POSTDATA=&//;
$qdef->{bugs} = $bugs;
$qdef->{buffer} = $query_string;