default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / edit / cgp_rule.html
index 9c03a52..1f838e2 100644 (file)
@@ -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') );
 %>
 <%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;
+
+};
+
 </%init>