X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FTicket%2FElements%2FShowSimplifiedRecipients;fp=rt%2Fshare%2Fhtml%2FTicket%2FElements%2FShowSimplifiedRecipients;h=590006b535f601e0d8211ddbbe83663836cd65ce;hb=33beebf4cb42eba3e1dd868ad5e0af102de961da;hp=0000000000000000000000000000000000000000;hpb=7ac86daf67b0a95153b736d5811f9050363f6553;p=freeside.git diff --git a/rt/share/html/Ticket/Elements/ShowSimplifiedRecipients b/rt/share/html/Ticket/Elements/ShowSimplifiedRecipients new file mode 100644 index 000000000..590006b53 --- /dev/null +++ b/rt/share/html/Ticket/Elements/ShowSimplifiedRecipients @@ -0,0 +1,100 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# +%# +%# (Except where explicitly superseded by other copyright notices) +%# +%# +%# LICENSE: +%# +%# This work is made available to you under the terms of Version 2 of +%# the GNU General Public License. A copy of that license should have +%# been provided with this software, but in any event can be snarfed +%# from www.gnu.org. +%# +%# This work is distributed in the hope that it will be useful, but +%# WITHOUT ANY WARRANTY; without even the implied warranty of +%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%# General Public License for more details. +%# +%# You should have received a copy of the GNU General Public License +%# along with this program; if not, write to the Free Software +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. +%# +%# +%# CONTRIBUTION SUBMISSION POLICY: +%# +%# (The following paragraph is not intended to limit the rights granted +%# to you to modify and distribute this software under the terms of +%# the GNU General Public License and is only of importance to you if +%# you choose to contribute your changes and enhancements to the +%# community by submitting them to Best Practical Solutions, LLC.) +%# +%# By intentionally submitting any modifications, corrections or +%# derivatives to this work, or any other work intended for use with +%# Request Tracker, to Best Practical Solutions, LLC, you confirm that +%# you are the copyright holder for those contributions and you grant +%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, +%# royalty-free, perpetual, license to use, copy, create derivative +%# works based on those contributions, and sublicense and distribute +%# those contributions and any derivatives thereof. +%# +%# END BPS TAGGED BLOCK }}} +<%args> +$TicketObj + +<%init> +return unless RT->Config->Get('SimplifiedRecipients', $session{'CurrentUser'}); + +my $Object = $m->notes("DryRun-".$TicketObj->Id) || $TicketObj->DryRun(%ARGS); +$m->notes("DryRun-".$TicketObj->Id, $Object); +return unless $Object; + +my %headers = (To => {}, Cc => {}, Bcc => {}); +if ($Object->Scrips) { + for my $scrip (grep $_->ActionObj->Action->isa('RT::Action::SendEmail'), @{$Object->Scrips->Prepared}) { + for my $type (qw(To Cc Bcc)) { + $headers{$type}{$_->address} = $_ + for $scrip->ActionObj->Action->$type(); + } + } +} +if ($Object->Rules) { + for my $rule (grep {$_->{hints} and $_->{hints}{class} eq "SendEmail"} @{$Object->Rules}) { + for my $type (qw(To Cc Bcc)) { + $headers{$type}{$_} ||= @{[Email::Address->parse($_)]}[0] # Hate list context + for @{$rule->{hints}{recipients}{$type}}; + } + } +} +my %recips; + +<&|/Widgets/TitleBox, title => loc('Recipients'), id => 'recipients' &> + + +% for my $type (qw(To Cc Bcc)) { +% next unless keys %{$headers{$type}}; + + +% } +
<% $type %>: +% for my $addr (sort {$a->address cmp $b->address} values %{$headers{$type}}) { +% my $checked = 1; +% $m->callback(CallbackName => 'BeforeAddress', Ticket => $TicketObj, Address => $addr, Type => $type, Checked => \$checked); +% $recips{$addr->address}++; + value="<%$addr->address%>" id="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>" /> + +% $m->callback(CallbackName => 'AfterAddress', Ticket => $TicketObj, Address => $addr, Type => $type); +
+% } +
+(Uncheck boxes to disable notifications to the listed +recipients. Does not change who will receive future +updates.) + +% $m->notes("DryRun-Recipients-".$TicketObj->Id, \%recips);