import of rt 3.0.4
[freeside.git] / rt / html / Approvals / index.html
1 %# BEGIN LICENSE BLOCK
2 %# 
3 %# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
4 %# 
5 %# (Except where explictly superceded by other copyright notices)
6 %# 
7 %# This work is made available to you under the terms of Version 2 of
8 %# the GNU General Public License. A copy of that license should have
9 %# been provided with this software, but in any event can be snarfed
10 %# from www.gnu.org.
11 %# 
12 %# This work is distributed in the hope that it will be useful, but
13 %# WITHOUT ANY WARRANTY; without even the implied warranty of
14 %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 %# General Public License for more details.
16 %# 
17 %# Unless otherwise specified, all modifications, corrections or
18 %# extensions to this work which alter its source code become the
19 %# property of Best Practical Solutions, LLC when submitted for
20 %# inclusion in the work.
21 %# 
22 %# 
23 %# END LICENSE BLOCK
24 <& /Elements/Header, Title => loc("My approvals") &>
25 <& /Approvals/Elements/Tabs, Title => loc("My approvals") &>
26
27 <& /Elements/ListActions, actions => \@actions &>
28 <form method="post">
29 <& Elements/PendingMyApproval, %ARGS &>
30 <& /Elements/Submit &>
31 </form>
32 <%init>
33
34 my (@actions);
35 foreach my $arg ( keys %ARGS ) {
36
37     next unless ( $arg =~ /Approval-(\d+)-Action/ );
38
39     my ( $notesval, $notesmsg );
40
41     my $ticket = LoadTicket($1);
42
43     if ( $ARGS{ "Approval-" . $ticket->Id . "-Notes" } ) {
44         my $notes = MIME::Entity->build(
45             Data => [ $ARGS{ "Approval-" . $ticket->Id . "-Notes" } ]
46         );
47         RT::I18N::SetMIMEEntityToUTF8($notes); # convert text parts into utf-8
48
49         my ( $notesval, $notesmsg ) = $ticket->Correspond( MIMEObj => $notes );
50         if ($notesval) {
51                 push ( @actions, loc("Approval #[_1]: Notes recorded",$ticket->Id ));
52         } else {
53                 push ( @actions, loc("Approval #[_1]: Notes not recorded due to a system error",$ticket->Id ));
54         }
55     }
56
57     my ($val, $msg);
58     if ( $ARGS{$arg} eq 'deny' ) {
59          ( $val, $msg ) = $ticket->SetStatus('rejected');
60     }
61     elsif ( $ARGS{$arg} eq 'approve' ) {
62          ( $val, $msg ) = $ticket->SetStatus('resolved');
63     }
64     push ( @actions, loc("Approval #[_1]: [_2]",$ticket->id, $msg )) if ($msg);
65 }
66 </%init>