X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fcgp_rule.html;h=1f838e23861e198294c6bcae8baab8dbf65b7aeb;hp=9c03a52f08079d202ac983659194c75e41e52cbe;hb=HEAD;hpb=37591b61f8ad6fc5c5acb2fd8f520d2dbe4f1539 diff --git a/httemplate/edit/cgp_rule.html b/httemplate/edit/cgp_rule.html index 9c03a52f0..1f838e238 100644 --- a/httemplate/edit/cgp_rule.html +++ b/httemplate/edit/cgp_rule.html @@ -1,19 +1,39 @@ <% include('elements/edit.html', 'name_singular' => 'rule', 'table' => 'cgp_rule', - 'labels' => { 'rulenum' => 'Rule', - 'name' => 'Name', - 'comment' => 'Comment', - 'priority' => 'Priority', + 'labels' => { 'rulenum' => 'Rule', + 'name' => 'Name', + 'comment' => 'Comment', + 'priority' => 'Priority', + 'ruleconditionnum' => 'Condition', + 'ruleactionnum' => 'Action', }, 'fields' => [ 'name', 'comment', - { 'field' => 'priority', - 'type' => 'select', - 'options' => [ 0 .. 10 ], - 'labels' => { 0 => 'Inactive' }, + { 'field' => 'priority', + 'type' => 'select', + 'options' => [ 0 .. 10 ], + 'labels' => { 0 => 'Inactive' }, + }, + { 'field' => 'svcnum', 'type' => 'hidden', }, + { 'type' => 'tablebreak-tr-title', + 'value' => 'Conditions', + }, + { 'field' => 'ruleconditionnum', + 'type' => 'select-cgp_rule_condition', + 'o2m_table' => 'cgp_rule_condition', + 'm2_label' => 'Condition', + 'm2_error_callback' => $m2_error_callback_cond, + }, + { 'type' => 'tablebreak-tr-title', + 'value' => 'Actions', + }, + { 'field' => 'ruleactionnum', + 'type' => 'select-cgp_rule_action', + 'o2m_table' => 'cgp_rule_action', + 'm2_label' => 'Action', + 'm2_error_callback' => $m2_error_callback_action, }, - { 'field' => 'svcnum', 'type' => 'hidden', }, ], 'new_callback' => sub { my( $cgi, $cgp_rule ) = @_; $cgp_rule->svcnum( $cgi->param('svcnum') ); @@ -24,7 +44,59 @@ %> <%init> -#my $svcnum #huh +my %opt = @_; + #my $viewall_url = $p. "browse/$table.html?svcnum=$svcnum"; +my $m2_error_callback_cond = sub { + my($cgi, $object) = @_; + + my @fields = qw( conditionname op params ); + my @gfields = ( '', map "_$_", @fields ); + + map { + if ( /^ruleconditionnum(\d+)$/ ) { + my $num = $1; + if ( grep $cgi->param("ruleconditionnum$num$_"), @gfields ) { + my $x = new FS::cgp_rule_condition { + 'ruleconditionnum' => scalar($cgi->param("ruleconditionnum$num")), + map { $_ => scalar($cgi->param("ruleconditionnum${num}_$_")) } @fields, + }; + $x; + } else { + (); + } + } else { + (); + } + } + $cgi->param; +}; + +my $m2_error_callback_action = sub { + my($cgi, $object) = @_; + + my @fields = qw( action params ); + my @gfields = ( '', map "_$_", @fields ); + + map { + if ( /^ruleactionnum(\d+)$/ ) { + my $num = $1; + if ( grep $cgi->param("ruleactionnum$num$_"), @gfields ) { + my $x = new FS::cgp_rule_action { + 'ruleactionnum' => scalar($cgi->param("ruleactionnum$num")), + map { $_ => scalar($cgi->param("ruleactionnum${num}_$_")) } @fields, + }; + $x; + } else { + (); + } + } else { + (); + } + } + $cgi->param; + +}; +