diff options
author | Dylan William Hardison <dylan@hardison.net> | 2016-12-16 21:44:19 +0100 |
---|---|---|
committer | Dylan William Hardison <dylan@hardison.net> | 2016-12-16 21:44:19 +0100 |
commit | e0040665d073cb044bcee0aac730d8fca175d852 (patch) | |
tree | 8878b416bbff43e3e94fce4f29ff815e9b49b222 /Bugzilla | |
parent | 50fe01e3ee89cd9395dc21a739b8bc74b5c54272 (diff) | |
download | bugzilla-e0040665d073cb044bcee0aac730d8fca175d852.tar.gz bugzilla-e0040665d073cb044bcee0aac730d8fca175d852.tar.xz |
Revert "Bug 1313766 - Bugzilla::Bug->send_changes() should not output HTML directly"
This reverts commit 490499f9a35b36b72c0b7b30322b9838774b93fe.
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Bug.pm | 52 | ||||
-rw-r--r-- | Bugzilla/Error/Template.pm | 26 |
2 files changed, 30 insertions, 48 deletions
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 637d94114..69734e6c0 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -1331,13 +1331,13 @@ sub remove_from_db { ##################################################################### sub send_changes { - my ($self, $changes) = @_; - my @results; + my ($self, $changes, $vars) = @_; + my $user = Bugzilla->user; - my $old_qa = $changes->{'qa_contact'} + my $old_qa = $changes->{'qa_contact'} ? $changes->{'qa_contact'}->[0] : ''; - my $old_own = $changes->{'assigned_to'} + my $old_own = $changes->{'assigned_to'} ? $changes->{'assigned_to'}->[0] : ''; my $old_cc = $changes->{cc} ? $changes->{cc}->[0] : ''; @@ -1349,15 +1349,15 @@ sub send_changes { changer => $user, ); - push @results, _send_bugmail( - { id => $self->id, type => 'bug', forced => \%forced }); + my $recipient_count = _send_bugmail( + { id => $self->id, type => 'bug', forced => \%forced }, $vars); # If the bug was marked as a duplicate, we need to notify users on the # other bug of any changes to that bug. my $new_dup_id = $changes->{'dup_id'} ? $changes->{'dup_id'}->[1] : undef; if ($new_dup_id) { - push @results, _send_bugmail( - { forced => { changer => $user }, type => "dupe", id => $new_dup_id }); + $recipient_count += _send_bugmail( + { forced => { changer => $user }, type => "dupe", id => $new_dup_id }, $vars); } # If there were changes in dependencies, we need to notify those @@ -1376,7 +1376,7 @@ sub send_changes { foreach my $id (@{ $self->blocked }) { $params->{id} = $id; - push @results, _send_bugmail($params); + $recipient_count += _send_bugmail($params, $vars); } } } @@ -1394,28 +1394,37 @@ sub send_changes { delete $changed_deps{''}; foreach my $id (sort { $a <=> $b } (keys %changed_deps)) { - push @results, _send_bugmail( - { forced => { changer => $user }, type => "dep", id => $id }); + $recipient_count += _send_bugmail( + { forced => { changer => $user }, type => "dep", id => $id }, $vars); } # Sending emails for the referenced bugs. foreach my $ref_bug_id (uniq @{ $self->{see_also_changes} || [] }) { - push @results, _send_bugmail( - { forced => { changer => $user }, id => $ref_bug_id }); + $recipient_count += _send_bugmail( + { forced => { changer => $user }, id => $ref_bug_id }, $vars); } - return \@results; + return $recipient_count; } sub _send_bugmail { - my ($params) = @_; + my ($params, $vars) = @_; require Bugzilla::BugMail; - my $sent_bugmail = + my $results = Bugzilla::BugMail::Send($params->{'id'}, $params->{'forced'}, $params); - return { params => $params, sent_bugmail => $sent_bugmail }; + if (Bugzilla->usage_mode == USAGE_MODE_BROWSER) { + my $template = Bugzilla->template; + $vars->{$_} = $params->{$_} foreach keys %$params; + $vars->{'sent_bugmail'} = $results; + $template->process("bug/process/results.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + $vars->{'header_done'} = 1; + } + + return scalar @{ $results->{sent} }; } ##################################################################### @@ -2769,11 +2778,10 @@ sub _set_product { if (%vars) { $vars{product} = $product; $vars{bug} = $self; - require Bugzilla::Error::Template; - die Bugzilla::Error::Template->new( - file => "bug/process/verify-new-product.html.tmpl", - vars => \%vars - ); + my $template = Bugzilla->template; + $template->process("bug/process/verify-new-product.html.tmpl", + \%vars) || ThrowTemplateError($template->error()); + exit; } } else { diff --git a/Bugzilla/Error/Template.pm b/Bugzilla/Error/Template.pm deleted file mode 100644 index a3afa7e4d..000000000 --- a/Bugzilla/Error/Template.pm +++ /dev/null @@ -1,26 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# This Source Code Form is "Incompatible With Secondary Licenses", as -# defined by the Mozilla Public License, v. 2.0. - -package Bugzilla::Error::Template; - -use 5.10.1; -use strict; -use warnings; -use Moo; - -has 'file' => ( - is => 'ro', - required => 1, -); - -has 'vars' => ( - is => 'ro', - default => sub { {} }, -); - - -1;
\ No newline at end of file |