From 5ef064aeca4a22dbe38b538e65d512d5d398fe2f Mon Sep 17 00:00:00 2001 From: mark Date: Wed, 17 Nov 2010 20:44:11 +0000 Subject: create ticket on custom field change, RT#10139 --- rt/share/html/Admin/Elements/EditScrip | 35 +++++++++++++++++- rt/share/html/Admin/Elements/EditScripOptions | 44 +++++++++++++++++++++++ rt/share/html/Admin/Elements/SelectScripAction | 5 ++- rt/share/html/Admin/Elements/SelectScripCondition | 5 ++- 4 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 rt/share/html/Admin/Elements/EditScripOptions (limited to 'rt/share/html/Admin') diff --git a/rt/share/html/Admin/Elements/EditScrip b/rt/share/html/Admin/Elements/EditScrip index 2bcf64d49..a4e8beb4a 100755 --- a/rt/share/html/Admin/Elements/EditScrip +++ b/rt/share/html/Admin/Elements/EditScrip @@ -64,14 +64,32 @@ <& /Admin/Elements/SelectScripCondition, Name => "Scrip-$id-ScripCondition", Default => $ARGS{"Scrip-$id-ScripCondition"} || $scrip->ConditionObj->Id, + ScripObj => $scrip, + Queue => $Queue, &> +<& /Admin/Elements/EditScripOptions, + Name => "Condition", + Default => $ARGS{"Scrip-$id-ConditionRules"} || $scrip->ConditionRules, + Queue => $Queue, + ScripX => $ARGS{"Scrip-$id-ScripCondition"} || $scrip->ConditionObj->Id, +&> + <&|/l&>Action: <& /Admin/Elements/SelectScripAction, Name => "Scrip-$id-ScripAction", Default => $ARGS{"Scrip-$id-ScripAction"} || $scrip->ActionObj->Id, + ScripObj => $scrip, + Queue => $Queue, &> +<& /Admin/Elements/EditScripOptions, + Name => "Action", + Default => $ARGS{"Scrip-$id-ActionRules"} || $scrip->ActionRules, + Queue => $Queue, + ScripX => $ARGS{"Scrip-$id-ScripAction"} || $scrip->ActionObj->Id, +&> + <&|/l&>Template: <& /Admin/Elements/SelectTemplate, Name => "Scrip-$id-Template", @@ -165,6 +183,18 @@ $Queue => undef <%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 @@ if ( $id eq 'new' ) { 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 @@ else { 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, diff --git a/rt/share/html/Admin/Elements/EditScripOptions b/rt/share/html/Admin/Elements/EditScripOptions new file mode 100644 index 000000000..7b3848419 --- /dev/null +++ b/rt/share/html/Admin/Elements/EditScripOptions @@ -0,0 +1,44 @@ +% return if !@options; + +% my $prefix = $Name.'Rules-'; +% foreach my $o (@options) { + + +% } #foreach $o +
<% $o->{'label'} %>: +% if ( $o->{'type'} eq 'text' ) { + +% } +% elsif ( $o->{'type'} eq 'select' and ref $o->{'options'} ) { + +% } # else $o->{'type'} +
+ +<%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); +} + + +<%ARGS> +$Name => undef +$Default => undef +$Queue => 0 +$ScripX => undef + diff --git a/rt/share/html/Admin/Elements/SelectScripAction b/rt/share/html/Admin/Elements/SelectScripAction index f6d5bb23f..48065905c 100755 --- a/rt/share/html/Admin/Elements/SelectScripAction +++ b/rt/share/html/Admin/Elements/SelectScripAction @@ -45,7 +45,10 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} - diff --git a/rt/share/html/Admin/Elements/SelectScripCondition b/rt/share/html/Admin/Elements/SelectScripCondition index 34e700d9e..516766157 100755 --- a/rt/share/html/Admin/Elements/SelectScripCondition +++ b/rt/share/html/Admin/Elements/SelectScripCondition @@ -45,7 +45,10 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} - -- cgit v1.2.1