%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
%#
%# END BPS TAGGED BLOCK }}}
<& /Elements/Header, Title => loc("My approvals") &>
-<& /Approvals/Elements/Tabs, Title => loc("My approvals") &>
+<& /Elements/Tabs &>
<& /Elements/ListActions, actions => \@actions &>
-<form method="post">
+<form method="post" name="Approvals" id="Approvals">
<& Elements/PendingMyApproval, %ARGS &>
<& /Elements/Submit, Label => loc('Go!') &>
</form>
my $ticket = LoadTicket($1);
- if ( $ARGS{ "Approval-" . $ticket->Id . "-Notes" } ) {
- my $notes = MIME::Entity->build(
- Data => [ $ARGS{ "Approval-" . $ticket->Id . "-Notes" } ]
- );
- RT::I18N::SetMIMEEntityToUTF8($notes); # convert text parts into utf-8
+ my $skip_update = 0;
+ $m->callback( CallbackName => 'BeforeApproval',
+ skip_update => \$skip_update,
+ Ticket => $ticket,
+ actions => \@actions);
+ next if $skip_update;
- my ( $notesval, $notesmsg ) = $ticket->Correspond( MIMEObj => $notes );
+ if ( $ARGS{ "Approval-" . $ticket->Id . "-Notes" } ) {
+ my ( $notesval, $notesmsg ) = $ticket->Correspond(
+ Content => $ARGS{ "Approval-" . $ticket->Id . "-Notes" }
+ );
if ($notesval) {
push ( @actions, loc("Approval #[_1]: Notes recorded",$ticket->Id ));
} else {
}
my ($val, $msg);
- if ( $ARGS{$arg} eq 'deny' ) {
- ( $val, $msg ) = $ticket->SetStatus('rejected');
+ if ( $ARGS{$arg} eq 'deny' && $ticket->Status !~ /^(rejected|deleted)/ ) {
+ ( $val, $msg ) = $ticket->SetStatus('rejected');
}
- elsif ( $ARGS{$arg} eq 'approve' ) {
- ( $val, $msg ) = $ticket->SetStatus('resolved');
+ elsif ( $ARGS{$arg} eq 'approve' && $ticket->Status ne 'resolved') {
+ ( $val, $msg ) = $ticket->SetStatus('resolved');
}
push ( @actions, loc("Approval #[_1]: [_2]",$ticket->id, $msg )) if ($msg);
}