import rt 2.0.14
[freeside.git] / rt / webrt / Admin / Queues / Scrips.html
diff --git a/rt/webrt/Admin/Queues/Scrips.html b/rt/webrt/Admin/Queues/Scrips.html
new file mode 100755 (executable)
index 0000000..95b8c43
--- /dev/null
@@ -0,0 +1,111 @@
+<& /Admin/Elements/Header, Title => 'Edit scrips' &>
+<& /Admin/Elements/QueueTabs, id => $QueueObj->Id &>
+
+<& /Elements/ListActions, actions => \@actions &>
+
+<& /Elements/TitleBoxStart, title => $description &>
+<h2>Global Scrips</h2>
+<& /Admin/Elements/ListGlobalScrips &>
+<BR> 
+  <FORM METHOD=POST ACTION="Scrips.html">
+    <INPUT TYPE=HIDDEN NAME=id VALUE=<%$id%>>
+<h2>Queue Scrips</h2>
+% if ($Scrips->Count > 0 ) {
+<TABLE>
+<TR>
+<TD>Delete
+</TD>
+<TD>
+</TR>
+% while (my $scrip = $Scrips->Next ) {
+<TR>
+<TD>
+<INPUT TYPE="CHECKBOX" NAME="DeleteScrip-<%$scrip->Id%>">
+</TD>
+<TD>
+<% $scrip->ConditionObj->Name %> 
+<% $scrip->ActionObj->Name %> with template
+<% $scrip->TemplateObj->Name %>
+</TD>
+</TR>
+% }
+</TABLE>
+% }
+<BR>
+<h2>Add a scrip to this queue</h2>
+Condition: <& /Admin/Elements/SelectScripCondition, Name => 'NewScripCondition' &>
+         Action: <& /Admin/Elements/SelectScripAction, Name => 'NewScripAction' &>
+         Template: <& /Admin/Elements/SelectTemplate, Name => 'NewScripTemplate', DefaultQueue => $id &>
+
+<& /Elements/TitleBoxEnd &>
+<& /Elements/Submit &>
+</FORM>
+<%init>
+my (@actions, $description);
+
+my $Scrips = new RT::Scrips ($session{'CurrentUser'});
+unless ($id =~ /^\d+$/) {
+    Abort("$id isn't a valid Queue id.");
+}
+
+unless ($Scrips->LimitToQueue($id)) {
+    Abort("Couldn't load Scrips.");
+        }
+
+my $QueueObj = new RT::Queue($session{'CurrentUser'});
+$QueueObj->Load($id);
+
+if ($QueueObj->id) {
+    $description = "Modify scrips for queue '". $QueueObj->Name ."'";
+}
+else {
+    $description = "Modify global scrips";
+}
+
+
+if ($NewScripAction and $NewScripCondition) {
+    my $NewScrip = new RT::Scrip($session{'CurrentUser'});
+    
+    my ($retval, $msg) = $NewScrip->Create ( ScripAction => $NewScripAction,
+                                    ScripCondition => $NewScripCondition,
+                                    Stage => 'TransactionCreate',
+                                    Queue => $id,
+                                    Template => $NewScripTemplate);
+    if (defined $retval) {
+        push @actions, $msg;
+    }
+    else {
+        push @actions, $msg;
+    }
+}
+
+# {{{ deal with modifying and deleting existing scrips
+my ($key );
+foreach $key (keys %ARGS) {
+       # {{{ if we're trying to delete the scrip
+    if ($key =~ /^DeleteScrip-(\d+)/) {
+            my $id = $1;
+               my $scrip = new RT::Scrip($session{'CurrentUser'});
+               $scrip->Load($id);
+           my ($retval, $msg) = $scrip->Delete;
+           if ($retval) {
+               push @actions, 'Scrip deleted';
+           }
+           else {
+               push @actions, $msg;
+           }
+       }
+       # }}}
+
+    
+}
+# }}}
+</%init>
+
+<%ARGS>
+$NewScripCondition => undef
+$NewScripAction => undef
+$NewScripTemplate => undef
+$id => undef         #some identifier that a Queue could 
+</%ARGS>