import rt 3.2.2
[freeside.git] / rt / html / Admin / Elements / EditScrip
1 %# {{{ BEGIN BPS TAGGED BLOCK
2 %# 
3 %# COPYRIGHT:
4 %#  
5 %# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC 
6 %#                                          <jesse@bestpractical.com>
7 %# 
8 %# (Except where explicitly superseded by other copyright notices)
9 %# 
10 %# 
11 %# LICENSE:
12 %# 
13 %# This work is made available to you under the terms of Version 2 of
14 %# the GNU General Public License. A copy of that license should have
15 %# been provided with this software, but in any event can be snarfed
16 %# from www.gnu.org.
17 %# 
18 %# This work is distributed in the hope that it will be useful, but
19 %# WITHOUT ANY WARRANTY; without even the implied warranty of
20 %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 %# General Public License for more details.
22 %# 
23 %# You should have received a copy of the GNU General Public License
24 %# along with this program; if not, write to the Free Software
25 %# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26 %# 
27 %# 
28 %# CONTRIBUTION SUBMISSION POLICY:
29 %# 
30 %# (The following paragraph is not intended to limit the rights granted
31 %# to you to modify and distribute this software under the terms of
32 %# the GNU General Public License and is only of importance to you if
33 %# you choose to contribute your changes and enhancements to the
34 %# community by submitting them to Best Practical Solutions, LLC.)
35 %# 
36 %# By intentionally submitting any modifications, corrections or
37 %# derivatives to this work, or any other work intended for use with
38 %# Request Tracker, to Best Practical Solutions, LLC, you confirm that
39 %# you are the copyright holder for those contributions and you grant
40 %# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
41 %# royalty-free, perpetual, license to use, copy, create derivative
42 %# works based on those contributions, and sublicense and distribute
43 %# those contributions and any derivatives thereof.
44 %# 
45 %# }}} END BPS TAGGED BLOCK
46 <& /Elements/ListActions, actions => \@actions &>
47
48   
49 <FORM METHOD=POST ACTION="Scrip.html">
50 <input type="hidden" name="id" value="<%$id%>">
51 <input type="hidden" name="Queue" value="<%$Queue%>">
52 <& /Elements/TitleBoxStart, title => loc('Scrip Fields') &>
53 <TABLE>
54 <TR>
55 <TD ALIGN=RIGHT>
56 <&|/l&>Description</&>:
57 </TD>
58 <TD>
59 <input Name="Scrip-<%$id%>-Description" value="<%$scrip->Description%>">
60 </TR>
61 <TR>
62 <TD ALIGN=RIGHT>
63 <&|/l&>Condition</&>:
64 </TD>
65 <TD>
66 <& /Admin/Elements/SelectScripCondition, Name => "Scrip-$id-ScripCondition", Default => $scrip->ConditionObj->Id &><BR>
67 </TD>
68 </TR>
69 <TR>
70 <TD ALIGN=RIGHT>
71 <&|/l&>Action</&>:
72 </TD>
73 <TD>
74 <& /Admin/Elements/SelectScripAction, Name => "Scrip-$id-ScripAction", Default => $scrip->ActionObj->Id &>
75 </TD>
76 </TR>
77 <TR>
78 <TD ALIGN=RIGHT>
79 <&|/l&>Template</&>: 
80 </TD>
81 <TD>
82 <& /Admin/Elements/SelectTemplate, Name => "Scrip-$id-Template", Default => $scrip->TemplateObj->Id, Queue => $Queue &>
83 </TD>
84 </TR>
85 <TR>
86 <TD ALIGN=RIGHT>
87 <&|/l&>Stage</&>: 
88 </TD>
89 <TD>
90 <& /Admin/Elements/SelectStage, Name => "Scrip-$id-Stage", Default => $scrip->Stage &>
91 </TD>
92 </TR>
93 </table>
94 <& /Elements/TitleBoxEnd &>
95 <& /Elements/Submit, Caption => loc("Be sure to save your changes"), Reset => 1 &>
96
97 <br>
98 <& /Elements/TitleBoxStart, title => loc('User Defined conditions and actions') &>
99 <table>
100 <TR>
101 <TD colspan=2>
102 <i><&|/l&>(Use these fields when you choose 'User Defined' for a condition or action)</&></i>
103 </TD>
104 </TR>
105 <TR>
106 <TD class=labeltop>
107 <&|/l&>Custom condition</&>:
108 </TD>
109 <TD>
110 <TEXTAREA COLS=80 ROWS=5 NAME="Scrip-<%$id%>-CustomIsApplicableCode"><%$scrip->CustomIsApplicableCode%></TEXTAREA>
111 </TD>
112 </TR>
113 <TR>
114 <TD class=labeltop>
115 <&|/l&>Custom action preparation code</&>:
116 </TD>
117 <TD>
118 <TEXTAREA COLS=80 ROWS=5 NAME="Scrip-<%$id%>-CustomPrepareCode"><%$scrip->CustomPrepareCode%></TEXTAREA>
119 </TD>
120 </TR>
121 <TR>
122 <TD class=labeltop>
123 <&|/l&>Custom action cleanup code</&>:
124 </TD>
125 <TD>
126 <TEXTAREA COLS=80 ROWS=5 NAME="Scrip-<%$id%>-CustomCommitCode"><%$scrip->CustomCommitCode%></TEXTAREA>
127 </TD>
128 </TR>
129 </table>
130 <& /Elements/TitleBoxEnd &>
131
132 <& /Elements/Submit, Label => loc('Create'), Reset => 1 &>
133
134 </FORM>
135 <%init>
136 my (@actions);
137
138
139 my $scrip = new RT::Scrip($session{'CurrentUser'});
140
141 if ( $id eq 'new' ) {
142
143     my ( $retval, $msg ) = $scrip->Create(
144             Queue                  => $Queue,
145             ScripAction            => $ARGS{"Scrip-new-ScripAction"},
146             ScripCondition         => $ARGS{"Scrip-new-ScripCondition"},
147             Template               => $ARGS{"Scrip-new-Template"},
148             Description            => $ARGS{"Scrip-new-Description"},
149             CustomPrepareCode      => $ARGS{"Scrip-new-CustomPrepareCode"},
150             CustomCommitCode       => $ARGS{"Scrip-new-CustomCommitCode"},
151             CustomIsApplicableCode => $ARGS{"Scrip-new-CustomIsApplicableCode"},
152     );
153     if ( defined $retval ) {
154         push @actions, $msg;
155         $id = $scrip->id;
156     }
157     else {
158         Abort( $msg);
159     }
160 }
161 elsif ($id) {
162     my ($val,$msg) =$scrip->Load($id);
163     if  ($val) {
164         $id = $scrip->id;
165     } else {
166        Abort ($msg);
167     }
168     my @attribs = qw (
169       Queue
170       ScripAction
171       ScripCondition
172       Template
173       Stage
174       Description
175       CustomPrepareCode
176       CustomCommitCode
177       CustomIsApplicableCode
178     );
179     my @results = UpdateRecordObject( AttributesRef => \@attribs,
180                                       AttributePrefix => 'Scrip-'.$scrip->Id,
181                                       Object        => $scrip,
182                                       ARGSRef       => \%ARGS );
183     push (@actions, @results);
184 }
185
186 elsif ($ARGS{'create'}) {
187     $id = 'new';
188 }
189
190 # }}}
191 </%init>
192
193 <%ARGS>
194 $id => undef
195 $title => undef
196 $Queue => 0
197 </%ARGS>