summaryrefslogtreecommitdiff
path: root/httemplate/edit/cgp_rule.html
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/edit/cgp_rule.html')
-rw-r--r--httemplate/edit/cgp_rule.html102
1 files changed, 102 insertions, 0 deletions
diff --git a/httemplate/edit/cgp_rule.html b/httemplate/edit/cgp_rule.html
new file mode 100644
index 0000000..41275ab
--- /dev/null
+++ b/httemplate/edit/cgp_rule.html
@@ -0,0 +1,102 @@
+<% include('elements/edit.html',
+ 'name_singular' => 'rule',
+ 'table' => 'cgp_rule',
+ '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' => '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,
+ },
+ ],
+ 'new_callback' => sub { my( $cgi, $cgp_rule ) = @_;
+ $cgp_rule->svcnum( $cgi->param('svcnum') );
+ },
+ #'viewall_url' => $viewall_url,
+ 'menubar' => [],
+ )
+%>
+<%init>
+
+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' => $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' => $cgi->param("ruleactionnum$num"),
+ map { $_ => scalar($cgi->param("ruleactionnum${num}_$_")) } @fields,
+ };
+ $x;
+ } else {
+ ();
+ }
+ } else {
+ ();
+ }
+ }
+ $cgi->param;
+
+};
+
+</%init>