summaryrefslogtreecommitdiff
path: root/httemplate/edit/cgp_rule.html
diff options
context:
space:
mode:
authorivan <ivan>2010-04-30 02:32:39 +0000
committerivan <ivan>2010-04-30 02:32:39 +0000
commit6873aec01740ea7c70a5e20a3f3bce6e76bca410 (patch)
tree64298627d0396ab78310ce9f5059665a5f8c1bdd /httemplate/edit/cgp_rule.html
parent2ac302e18d723563692cdbbd74f3e9e5331a3014 (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.html58
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>