RT# 82949 - changes section name from fees to pricing, better opiton
[freeside.git] / httemplate / browse / cgp_rule.html
index 3bf4d69..8ea7571 100644 (file)
@@ -7,13 +7,15 @@
                                   'order_by' => 'ORDER BY priority DESC',
                                 },
              'count_query'   => $count_query,
-             'header'        => [ 'Priority', 'Name', '' ],
+             'header'        => [ 'Priority', 'Name', 'Conditions', 'Actions', '' ],
              'fields'        => [ sub { shift->priority || 'Inactive'; },
                                   'name',
+                                  $condition_sub,
+                                  $action_sub,
                                   sub { 'Delete'; },
                                 ],
              #'align'
-             'links'         => [ $edit_sub, $edit_sub, $del_sub ],
+             'links'         => [ $edit_sub, $edit_sub, '', '', $del_sub ],
           )
 %>
 <%init>
@@ -24,23 +26,89 @@ my $svcnum = $1;
 #agent virt so you can't do cross-agent communigate rules
 my $cust_svc = qsearchs('cust_svc', { 'svcnum' => $svcnum })
   or die 'unknown svcnum';
+my $part_svc = $cust_svc->part_svc;
 
 my $count_query = "SELECT COUNT(*) FROM cgp_rule WHERE svcnum = $svcnum";
 
 my($svc_label, $svc_value, $svcdb) = $cust_svc->label;
 
-
 my $view = FS::UI::Web::svc_url( 'm'        => $m,
                                  'action'   => 'view',
-                                 'part_svc' => $cust_svc->part_svc, 
+                                 'part_svc' => $part_svc, 
                                  'svc'      => $cust_svc,
                                );
 
 my $html_init =
   qq(<A HREF="$view">View this $svc_label</A><BR><BR>).
-  qq!<A HREF="${p}edit/cgp_rule.html?svcnum=$svcnum">Add new rule</A><BR><BR>!;
+  qq!<A HREF="${p}edit/cgp_rule.html?svcnum=$svcnum">Add new rule</A><BR>!;
+
+if ( $part_svc->svcdb eq 'svc_domain' ) {
+
+  #XXX add areyousure javscript confirmation for adding these
+
+  foreach my $line ( FS::Conf->new->config('cgp_rule-domain_templates') ) {
+    $line =~ /^\s*(\d+)\s+(.+)\s*$/ or next;
+    my($t_svcnum, $t_name) = ( $1, $2 );
+    next if $t_svcnum == $svcnum;
+    $html_init .=
+      qq!<A HREF="${p}misc/clone-cgp_rule.html?clone=$t_svcnum;svcnum=$svcnum">!
+       ."Add $t_name rule</A><BR>";
+  }
+
+}
+
+$html_init .=
+  '<BR>'.
+  qq!
+  <SCRIPT>
+    function areyousure_delete(href) {
+     areyousure(href,"Are you sure you want to delete this rule?");
+    }
+    function areyousure(href,message) {
+     if (confirm(message) == true)
+       window.location.href = href;
+    }
+  </SCRIPT>
+!;
+
+my $condition_sub = sub {
+  my $cgp_rule = shift;
+
+  [ map {
+          [
+            { data  => $_->conditionname,
+              #align =>
+            },
+            { data  => $_->op,
+              align => 'center',
+            },
+            { data  => $_->params,
+              #align =>
+            },
+          ];
+        }
+        $cgp_rule->cgp_rule_condition
+  ];
+};
+
+my $action_sub = sub {
+  my $cgp_rule = shift;
+
+  [ map {
+          [
+            { data => $_->action },
+            #{ data => '<pre>'.$_->params.'</pre>' }, #gets very big.. limit to
+            { data => $_->params },                   # some actions?
+          ];
+        }
+        $cgp_rule->cgp_rule_action
+  ];
+};
 
 my $edit_sub = [ $p.'edit/cgp_rule.html?', 'rulenum' ];
-my $del_sub = [ $p.'misc/delete-cgp_rule.html?', 'rulenum' ]; #XXX javascript areyousure or something
+my $del_sub = sub {
+  my $rulenum = shift->rulenum;
+  [ "javascript:areyousure_delete('${p}misc/delete-cgp_rule.html?$rulenum')", '' ];
+};
 
 </%init>