Upgrade to 4.2.2
[usit-rt.git] / share / html / Ticket / Elements / ShowSimplifiedRecipients
CommitLineData
84fb5b46
MKG
1%# BEGIN BPS TAGGED BLOCK {{{
2%#
3%# COPYRIGHT:
4%#
320f0092 5%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
84fb5b46
MKG
6%# <sales@bestpractical.com>
7%#
8%# (Except where explicitly superseded by other copyright notices)
9%#
10%#
11%# LICENSE:
12%#
13%# This work is made available to you under the terms of Version 2 of
14%# the GNU General Public License. A copy of that license should have
15%# been provided with this software, but in any event can be snarfed
16%# from www.gnu.org.
17%#
18%# This work is distributed in the hope that it will be useful, but
19%# WITHOUT ANY WARRANTY; without even the implied warranty of
20%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21%# General Public License for more details.
22%#
23%# You should have received a copy of the GNU General Public License
24%# along with this program; if not, write to the Free Software
25%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26%# 02110-1301 or visit their web page on the internet at
27%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28%#
29%#
30%# CONTRIBUTION SUBMISSION POLICY:
31%#
32%# (The following paragraph is not intended to limit the rights granted
33%# to you to modify and distribute this software under the terms of
34%# the GNU General Public License and is only of importance to you if
35%# you choose to contribute your changes and enhancements to the
36%# community by submitting them to Best Practical Solutions, LLC.)
37%#
38%# By intentionally submitting any modifications, corrections or
39%# derivatives to this work, or any other work intended for use with
40%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41%# you are the copyright holder for those contributions and you grant
42%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
43%# royalty-free, perpetual, license to use, copy, create derivative
44%# works based on those contributions, and sublicense and distribute
45%# those contributions and any derivatives thereof.
46%#
47%# END BPS TAGGED BLOCK }}}
48<%args>
49$TicketObj
50</%args>
51<%init>
52return unless RT->Config->Get('SimplifiedRecipients', $session{'CurrentUser'});
53
54my $Object = $m->notes("DryRun-".$TicketObj->Id) || $TicketObj->DryRun(%ARGS);
55$m->notes("DryRun-".$TicketObj->Id, $Object);
56return unless $Object;
57
58my %headers = (To => {}, Cc => {}, Bcc => {});
59if ($Object->Scrips) {
60 for my $scrip (grep $_->ActionObj->Action->isa('RT::Action::SendEmail'), @{$Object->Scrips->Prepared}) {
61 for my $type (qw(To Cc Bcc)) {
62 $headers{$type}{$_->address} = $_
63 for $scrip->ActionObj->Action->$type();
64 }
65 }
66}
67if ($Object->Rules) {
68 for my $rule (grep {$_->{hints} and $_->{hints}{class} eq "SendEmail"} @{$Object->Rules}) {
69 for my $type (qw(To Cc Bcc)) {
70 $headers{$type}{$_} ||= @{[Email::Address->parse($_)]}[0] # Hate list context
71 for @{$rule->{hints}{recipients}{$type}};
72 }
73 }
74}
75my %recips;
c36a7e1d 76my %squelched = ProcessTransactionSquelching( \%ARGS );
84fb5b46
MKG
77</%init>
78<&|/Widgets/TitleBox, title => loc('Recipients'), id => 'recipients' &>
79<table>
84fb5b46
MKG
80% for my $type (qw(To Cc Bcc)) {
81% next unless keys %{$headers{$type}};
403d7b0b 82<tr>
84fb5b46
MKG
83<td valign="top"><% $type %>:</td>
84<td valign="top">
85% for my $addr (sort {$a->address cmp $b->address} values %{$headers{$type}}) {
c36a7e1d 86% my $checked = not $squelched{$addr->address};
84fb5b46
MKG
87% $m->callback(CallbackName => 'BeforeAddress', Ticket => $TicketObj, Address => $addr, Type => $type, Checked => \$checked);
88% $recips{$addr->address}++;
89<input type="checkbox" class="checkbox" name="TxnSendMailTo" <% $checked ? 'checked="checked"' : '' |n%> value="<%$addr->address%>" id="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>" />
90<label for="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>"><& /Elements/ShowUser, Address => $addr &></label>
91% $m->callback(CallbackName => 'AfterAddress', Ticket => $TicketObj, Address => $addr, Type => $type);
92<br />
93% }
94</td></tr>
95% }
403d7b0b 96% $m->callback( CallbackName => 'AfterRecipients', TicketObj => $TicketObj );
84fb5b46 97</table>
af59614d
MKG
98<p>
99<&|/l, RT->Config->Get('WebPath')."/Ticket/ModifyPeople.html?id=".$TicketObj->Id,
100&>Uncheck boxes to disable notifications to the listed recipients <b>for this transaction only</b>; persistent squelching is managed on the <a href="[_1]">People page</a>.</&>
101</p>
84fb5b46
MKG
102</&>
103% $m->notes("DryRun-Recipients-".$TicketObj->Id, \%recips);