diff options
Diffstat (limited to 'rt/share/html/Ticket/Elements/PreviewScrips')
-rwxr-xr-x | rt/share/html/Ticket/Elements/PreviewScrips | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/rt/share/html/Ticket/Elements/PreviewScrips b/rt/share/html/Ticket/Elements/PreviewScrips new file mode 100755 index 000000000..7480adecf --- /dev/null +++ b/rt/share/html/Ticket/Elements/PreviewScrips @@ -0,0 +1,235 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# <jesse@bestpractical.com> +%# +%# (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 => undef + +</%args> +<%init> +my %squelch = $m->comp('SELF:SquelchRecipients', %ARGS); +my $Object = $squelch{'Object'}; +my @non_recipients = @{ $squelch{'EmailAddresses'} }; + +</%init> +<h2><&|/l&>This message will be sent to...</&></h2> + +% if ( $Object and $Object->Scrips ) { +<i><&|/l&>(Check boxes to disable notifications to the listed recipients)</&></i><br /> + +% foreach my $scrip (@{$Object->Scrips->Prepared}) { +% next unless $scrip->ActionObj->Action->isa('RT::Action::SendEmail'); +<b><% $scrip->Description || loc('Scrip #[_1]',$scrip->id) %></b><br /> +<&|/l, loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)&>[_1] [_2] with template [_3]</&> +<br /> +%foreach my $type qw(To Cc Bcc) { +%my @addresses = $scrip->ActionObj->Action->$type(); +<ul> +%foreach my $addr (@addresses) { +<li> <b><%loc($type)%></b>: <input type="checkbox" class="checkbox" name="Ticket-<%$TicketObj->id%>-SquelchMailTo" value="<%$addr->address%>" /> <%$addr->address%> +% } +</ul> +% } +% if (RT->Config->Get('PreviewScripMessages')) { +<textarea cols="80" rows="5"> +<%$scrip->ActionObj->TemplateObj->MIMEObj->as_string%> +</textarea> +% } +% } +% } +<br /> + +<h2><&|/l&>Messages about this ticket will not be sent to...</&></h2> +<i><&|/l&>(Check boxes to enable notifications to the listed recipients)</&></i> +<br /> +<ul> +% foreach my $recipient (@non_recipients) { +<li><input type="checkbox" class="checkbox" name="Ticket-<%$TicketObj->id%>-UnsquelchMailTo" value="<%$recipient->Content%>" /> +<% $recipient->Content %> +% } +</ul> +<& /Elements/Submit, Name => 'UpdatePreview', Value => 'UpdatePreview', Label => loc('Save Changes')&> + +<%METHOD SquelchRecipients> +<%ARGS> +$TicketObj => undef +</%ARGS> +<%INIT> +my $arg = 'Ticket-'.$TicketObj->Id.'-SquelchMailTo'; +my @squelchto = ref($ARGS{$arg}) eq 'ARRAY' ? @{$ARGS{$arg}} : ($ARGS{$arg}); + +foreach my $address (@squelchto) { + $TicketObj->SquelchMailTo($address) if ($address); +} + + +$arg = 'Ticket-'.$TicketObj->Id.'-UnsquelchMailTo'; +my @unsquelchto = ref($ARGS{$arg}) eq 'ARRAY' ? @{$ARGS{$arg}} : ($ARGS{$arg}); + +foreach my $address (@unsquelchto) { + $TicketObj->UnsquelchMailTo($address) if ($address); +} + + +my $action; + +if (($ARGS{'UpdateType'} && $ARGS{'UpdateType'} eq 'response' ) || ($ARGS{'Action'} && $ARGS{'Action'} eq 'Respond' )) { + $action = 'Correspond'; +} +else { + $action = 'Comment'; +} + +my $Message = MakeMIMEEntity( + Subject => $ARGS{'UpdateSubject'}, + Body => $ARGS{'UpdateContent'}, +); + +my ( $Transaction, $Description, $Object ) = $TicketObj->$action( + CcMessageTo => $ARGS{'UpdateCc'}, + BccMessageTo => $ARGS{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $ARGS{'UpdateTimeWorked'}, + DryRun => 1 +); +unless ( $Transaction ) { + $RT::Logger->error("Coulfn't fire '$action' action: $Description"); +} + + +return (Object => $Object, EmailAddresses => [$TicketObj->SquelchMailTo]); +</%INIT> +</%METHOD> + +<%METHOD GetRecipients> +<%ARGS> +$TicketObj +</%ARGS> +<%INIT> +my $action; +if ( ( $ARGS{'UpdateType'} && $ARGS{'UpdateType'} eq 'response' ) + || ( $ARGS{'Action'} && $ARGS{'Action'} eq 'Respond' ) ) +{ + $action = 'Correspond'; +} +else { + $action = 'Comment'; +} + +my $Message = MakeMIMEEntity( + Subject => $ARGS{'UpdateSubject'}, + Body => $ARGS{'UpdateContent'}, +); + +my ( $id, $msg, $txn ) = $TicketObj->$action( + CcMessageTo => $ARGS{'UpdateCc'}, + BccMessageTo => $ARGS{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $ARGS{'UpdateTimeWorked'}, + DryRun => 1 +); +unless ( $id && $txn ) { + $RT::Logger->error("Couldn't fire '$action' action: $msg"); + return (); +} + +my @recipients; +foreach my $scrip ( @{ $txn->Scrips->Prepared } ) { + my $action = $scrip->ActionObj->Action; + next unless $action->isa('RT::Action::SendEmail'); + + foreach my $type qw(To Cc Bcc) { + push @recipients, $action->$type(); + } +} +return @recipients; +</%INIT> +</%METHOD> + +<%METHOD GetRecipientsOnCreate> +<%INIT> +my $action; +my $Message = MakeMIMEEntity( + Subject => $ARGS{'Subject'}, + Cc => $ARGS{'Cc'}, + Body => $ARGS{'Content'}, +); + +my $TicketObj = RT::Ticket->new( $session{'CurrentUser'} ); +my ( $id, $txn, $msg ) = $TicketObj->Create( + Type => $ARGS{'Type'} || 'ticket', + Queue => $ARGS{'Queue'}, + Owner => $ARGS{'Owner'}, + Requestor => $ARGS{'Requestors'}, + Cc => $ARGS{'Cc'}, + AdminCc => $ARGS{'AdminCc'}, + InitialPriority => $ARGS{'InitialPriority'}, + FinalPriority => $ARGS{'FinalPriority'}, + TimeLeft => $ARGS{'TimeLeft'}, + TimeEstimated => $ARGS{'TimeEstimated'}, + TimeWorked => $ARGS{'TimeWorked'}, + Subject => $ARGS{'Subject'}, + Status => $ARGS{'Status'}, + MIMEObj => $Message, + DryRun => 1 +); +unless ( $id && $txn ) { + $RT::Logger->error("Couldn't fire '$action' action: $msg"); + return (); +} + +my @recipients; +foreach my $scrip ( @{ $txn->Scrips->Prepared } ) { + my $action = $scrip->ActionObj->Action; + next unless $action->isa('RT::Action::SendEmail'); + + foreach my $type qw(To Cc Bcc) { + push @recipients, $action->$type(); + } +} +return @recipients; +</%INIT> +</%METHOD> |