import of rt 3.0.4
[freeside.git] / rt / html / Approvals / index.html
diff --git a/rt/html/Approvals/index.html b/rt/html/Approvals/index.html
new file mode 100644 (file)
index 0000000..b4156f3
--- /dev/null
@@ -0,0 +1,66 @@
+%# BEGIN LICENSE BLOCK
+%# 
+%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+%# 
+%# (Except where explictly superceded by other copyright notices)
+%# 
+%# 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.
+%# 
+%# Unless otherwise specified, all modifications, corrections or
+%# extensions to this work which alter its source code become the
+%# property of Best Practical Solutions, LLC when submitted for
+%# inclusion in the work.
+%# 
+%# 
+%# END LICENSE BLOCK
+<& /Elements/Header, Title => loc("My approvals") &>
+<& /Approvals/Elements/Tabs, Title => loc("My approvals") &>
+
+<& /Elements/ListActions, actions => \@actions &>
+<form method="post">
+<& Elements/PendingMyApproval, %ARGS &>
+<& /Elements/Submit &>
+</form>
+<%init>
+
+my (@actions);
+foreach my $arg ( keys %ARGS ) {
+
+    next unless ( $arg =~ /Approval-(\d+)-Action/ );
+
+    my ( $notesval, $notesmsg );
+
+    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 ( $notesval, $notesmsg ) = $ticket->Correspond( MIMEObj => $notes );
+        if ($notesval) {
+                push ( @actions, loc("Approval #[_1]: Notes recorded",$ticket->Id ));
+        } else {
+                push ( @actions, loc("Approval #[_1]: Notes not recorded due to a system error",$ticket->Id ));
+        }
+    }
+
+    my ($val, $msg);
+    if ( $ARGS{$arg} eq 'deny' ) {
+         ( $val, $msg ) = $ticket->SetStatus('rejected');
+    }
+    elsif ( $ARGS{$arg} eq 'approve' ) {
+         ( $val, $msg ) = $ticket->SetStatus('resolved');
+    }
+    push ( @actions, loc("Approval #[_1]: [_2]",$ticket->id, $msg )) if ($msg);
+}
+</%init>