diff options
author | ivan <ivan> | 2010-04-30 02:32:39 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-04-30 02:32:39 +0000 |
commit | 6873aec01740ea7c70a5e20a3f3bce6e76bca410 (patch) | |
tree | 64298627d0396ab78310ce9f5059665a5f8c1bdd /httemplate/edit/cgp_rule.html | |
parent | 2ac302e18d723563692cdbbd74f3e9e5331a3014 (diff) |
communigate (phase 2): rules: show conditions/actions on rule browse, fix rule edit for conditions and actions without op/param, fix rule edit stickiness on errors. RT#7514
Diffstat (limited to 'httemplate/edit/cgp_rule.html')
-rw-r--r-- | httemplate/edit/cgp_rule.html | 58 |
1 files changed, 53 insertions, 5 deletions
diff --git a/httemplate/edit/cgp_rule.html b/httemplate/edit/cgp_rule.html index adf993f25..d9c19a150 100644 --- a/httemplate/edit/cgp_rule.html +++ b/httemplate/edit/cgp_rule.html @@ -23,8 +23,7 @@ 'type' => 'select-cgp_rule_condition', 'o2m_table' => 'cgp_rule_condition', 'm2_label' => 'Condition', - #XXX m2_error_callback - 'm2_error_callback' => sub {}, + 'm2_error_callback' => $m2_error_callback_cond, }, { 'type' => 'tablebreak-tr-title', 'value' => 'Actions', @@ -33,8 +32,7 @@ 'type' => 'select-cgp_rule_action', 'o2m_table' => 'cgp_rule_action', 'm2_label' => 'Action', - #XXX m2_error_callback - 'm2_error_callback' => sub {}, + 'm2_error_callback' => $m2_error_callback_action, }, ], 'new_callback' => sub { my( $cgi, $cgp_rule ) = @_; @@ -48,7 +46,57 @@ my %opt = @_; -#my $svcnum #huh XXX #my $viewall_url = $p. "browse/$table.html?svcnum=$svcnum"; +my $m2_error_callback_cond = sub { + my($cgi, $object) = @_; + + my @fields = qw( condition 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' => $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_condition { + 'ruleactionnum' => $cgi->param("ruleactionnum$num"), + map { $_ => scalar($cgi->param("ruleactionnum${num}_$_")) } @fields, + }; + $x; + } else { + (); + } + } else { + (); + } + } + $cgi->param; + +}; + </%init> |