[freeside-commits] freeside/rt/share/html/Admin/Elements EditScrip, 1.1.1.2, 1.2 EditScripOptions, NONE, 1.1 SelectScripAction, 1.1.1.1, 1.2 SelectScripCondition, 1.1.1.1, 1.2

Mark Wells mark at wavetail.420.am
Wed Nov 17 12:44:13 PST 2010


Update of /home/cvs/cvsroot/freeside/rt/share/html/Admin/Elements
In directory wavetail.420.am:/tmp/cvs-serv20693/share/html/Admin/Elements

Modified Files:
	EditScrip SelectScripAction SelectScripCondition 
Added Files:
	EditScripOptions 
Log Message:
create ticket on custom field change, RT#10139

Index: EditScrip
===================================================================
RCS file: /home/cvs/cvsroot/freeside/rt/share/html/Admin/Elements/EditScrip,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -w -d -r1.1.1.2 -r1.2
--- EditScrip	18 May 2010 18:45:34 -0000	1.1.1.2
+++ EditScrip	17 Nov 2010 20:44:11 -0000	1.2
@@ -64,14 +64,32 @@
 <& /Admin/Elements/SelectScripCondition,
     Name => "Scrip-$id-ScripCondition",
     Default => $ARGS{"Scrip-$id-ScripCondition"} || $scrip->ConditionObj->Id,
+    ScripObj => $scrip,
+    Queue => $Queue,
 &></td></tr>
 
+<& /Admin/Elements/EditScripOptions,
+    Name => "Condition",
+    Default => $ARGS{"Scrip-$id-ConditionRules"} || $scrip->ConditionRules,
+    Queue => $Queue,
+    ScripX => $ARGS{"Scrip-$id-ScripCondition"} || $scrip->ConditionObj->Id,
+&>
+
 <tr><td align="right"><&|/l&>Action</&>:</td><td>
 <& /Admin/Elements/SelectScripAction,
     Name => "Scrip-$id-ScripAction",
     Default => $ARGS{"Scrip-$id-ScripAction"} || $scrip->ActionObj->Id,
+    ScripObj => $scrip,
+    Queue => $Queue,
 &></td></tr>
 
+<& /Admin/Elements/EditScripOptions,
+    Name => "Action",
+    Default => $ARGS{"Scrip-$id-ActionRules"} || $scrip->ActionRules,
+    Queue => $Queue,
+    ScripX => $ARGS{"Scrip-$id-ScripAction"} || $scrip->ActionObj->Id,
+&>
+
 <tr><td align="right"><&|/l&>Template</&>:</td><td>
 <& /Admin/Elements/SelectTemplate,
     Name => "Scrip-$id-Template",
@@ -165,6 +183,18 @@
 <%INIT>
 return ($id) unless $id;
 
+my @rules = ('ConditionRules', 'ActionRules');
+if ( exists($ARGS{"Scrip-$id-ScripCondition"}) ) {
+  foreach my $rules (@rules) {
+    my $prefix = join('-', 'Scrip', $id, $rules);
+    $ARGS{$prefix} = join("\n", map {
+      $_ =~ /^$rules-(.*)$/ ? 
+            ($1, $ARGS{$_}) : ()
+    } keys(%ARGS)
+    );
+  }
+}
+
 my $scrip = RT::Scrip->new( $session{'CurrentUser'} );
 if ( $id eq 'new' ) {
     return $scrip->Create(
@@ -177,6 +207,8 @@
         CustomCommitCode       => $ARGS{"Scrip-new-CustomCommitCode"},
         CustomIsApplicableCode => $ARGS{"Scrip-new-CustomIsApplicableCode"},
         Stage                  => $ARGS{"Scrip-new-Stage"},
+        ConditionRules         => $ARGS{"Scrip-new-ConditionRules"},
+        ActionRules            => $ARGS{"Scrip-new-ActionRules"},
     );
 }
 else {
@@ -185,7 +217,8 @@
         unless $scrip->id;
 
     my @attribs = qw(Queue ScripAction ScripCondition Template Stage
-        Description CustomPrepareCode CustomCommitCode CustomIsApplicableCode);
+        Description CustomPrepareCode CustomCommitCode CustomIsApplicableCode
+        ConditionRules ActionRules);
     my @results = UpdateRecordObject(
         AttributesRef   => \@attribs,
         AttributePrefix => 'Scrip-'.$scrip->Id,

--- NEW FILE: EditScripOptions ---
% return if !@options;
<tr><td></td><td><table>
% my $prefix = $Name.'Rules-';
% foreach my $o (@options) {
  <tr><td align="right"><% $o->{'label'} %>:</td>
  <td>
%   if ( $o->{'type'} eq 'text' ) {
  <input type="text" name="<% $prefix.$o->{'name'} %>" value="<% $rules{$o->{'name'}} %>">
%   }
%   elsif ( $o->{'type'} eq 'select' and ref $o->{'options'} ) {
  <select name="<% $prefix.$o->{'name'} %>">
%     my @choices = @{ $o->{'options'} };
%     while (@choices) {
%       my $v = shift @choices;
%       my $l = shift @choices;
  <option value="<% $v %>"<% ($rules{$o->{'name'}} eq $v) ? ' SELECTED' : ''%>>
  <% $l %></option>
%     }
  </select>
%   } # else $o->{'type'}
</td></tr>
% } #foreach $o
</table></td></tr>

<%INIT>
my (@options, %rules);
if ( $ScripX ) {
  my $ScripXObj = "RT::Scrip$Name"->new($session{'CurrentUser'});
  $ScripXObj->Load($ScripX);
  my $QueueObj = RT::Queue->new($session{'CurrentUser'});
  $QueueObj->Load($Queue);
  my $method = "Load$Name";
  my $XObj = $ScripXObj->$method();
  @options = $XObj->Options('QueueObj' => $QueueObj);
  %rules = split("\n", $Default);
}
</%INIT>

<%ARGS>
$Name => undef
$Default => undef
$Queue => 0
$ScripX => undef
</%ARGS>

Index: SelectScripAction
===================================================================
RCS file: /home/cvs/cvsroot/freeside/rt/share/html/Admin/Elements/SelectScripAction,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -w -d -r1.1.1.1 -r1.2
--- SelectScripAction	31 Dec 2009 13:16:17 -0000	1.1.1.1
+++ SelectScripAction	17 Nov 2010 20:44:11 -0000	1.2
@@ -45,7 +45,10 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<select name="<%$Name%>">
+<select name="<%$Name%>"
+onchange="var idobj = document.getElementsByName('id')[0]; 
+if (idobj.value=='new') idobj.value = '';
+form.submit()">
 <option value="" 
 <% ! defined $Default && qq[ selected="selected"] |n %>
 >-</option>

Index: SelectScripCondition
===================================================================
RCS file: /home/cvs/cvsroot/freeside/rt/share/html/Admin/Elements/SelectScripCondition,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -w -d -r1.1.1.1 -r1.2
--- SelectScripCondition	31 Dec 2009 13:16:16 -0000	1.1.1.1
+++ SelectScripCondition	17 Nov 2010 20:44:11 -0000	1.2
@@ -45,7 +45,10 @@
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-<select name="<%$Name%>">
+<select name="<%$Name%>"
+onchange="var idobj = document.getElementsByName('id')[0]; 
+if (idobj.value=='new') idobj.value = '';
+form.submit()">
 <option value="" 
 <% ! defined $Default && qq[ selected="selected"] %>
 >-</option>



More information about the freeside-commits mailing list