[freeside-commits] branch FREESIDE_3_BRANCH updated. 88d3c33682585244571ee7622949c3e9213284bf

Mark Wells mark at 420.am
Wed Jul 10 16:06:00 PDT 2013


The branch, FREESIDE_3_BRANCH has been updated
       via  88d3c33682585244571ee7622949c3e9213284bf (commit)
      from  14e965c64e2c7d26b6c02987dd1a07a628e6dc0a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 88d3c33682585244571ee7622949c3e9213284bf
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Jul 10 16:05:23 2013 -0700

    make it harder to create supplemental packages by accident, #20689

diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi
index 319e767..e665196 100755
--- a/httemplate/edit/part_pkg.cgi
+++ b/httemplate/edit/part_pkg.cgi
@@ -12,7 +12,8 @@
                                          $javascript,
               'html_bottom'           => $html_bottom,
               'body_etc'              =>
-                'onLoad="agent_changed(document.edit_topform.agentnum)"',
+                'onLoad="agent_changed(document.edit_topform.agentnum);
+                         hide_supp_pkgs()"',
 
               'begin_callback'        => $begin_callback,
               'end_callback'          => $end_callback,
@@ -54,7 +55,7 @@
                             'discountnum'      => 'Offer discounts for longer terms',
                             'bill_dst_pkgpart' => 'Include line item(s) from package',
                             'svc_dst_pkgpart'  => 'Include services of package',
-                            'supp_dst_pkgpart' => 'Include complete package',
+                            'supp_dst_pkgpart' => 'When ordering package, also order',
                             'report_option'    => 'Report classes',
                             'fcc_ds0s'         => 'Voice-grade equivalents',
                             'fcc_voip_class'   => 'Category',
@@ -252,19 +253,6 @@
                             },
 
                             { 'type'    => 'tablebreak-tr-title',
-                              'value'   => 'Supplemental packages',
-                              'colspan' => '4',
-                            },
-                            { 'field'       => 'supp_dst_pkgpart',
-                              'type'        => 'select-part_pkg',
-                              'm2_label'    => 'Include complete package',
-                              'm2m_method'  => 'supp_part_pkg_link',
-                              'm2m_dstcol'  => 'dst_pkgpart',
-                              'm2_error_callback' =>
-                                &{$m2_error_callback_maker}('supp'),
-                            },
-
-                            { 'type'    => 'tablebreak-tr-title',
                               'value'   => 'Pricing add-ons',
                               'colspan' => 4,
                             },
@@ -307,6 +295,22 @@
                                 &{$m2_error_callback_maker}('svc'),
                             },
 
+                            { 'type'    => 'tablebreak-tr-title',
+                              'value'   => 'Supplemental packages',
+                              'colspan' => '4',
+                              'include_opt_callback' => sub {
+                                 'id' => 'show_supp_pkgs',
+                              },
+                            },
+                            { 'field'       => 'supp_dst_pkgpart',
+                              'type'        => 'select-part_pkg',
+                              'm2_label'    => 'When ordering package, also order',
+                              'm2m_method'  => 'supp_part_pkg_link',
+                              'm2m_dstcol'  => 'dst_pkgpart',
+                              'm2_error_callback' =>
+                                &{$m2_error_callback_maker}('supp'),
+                            },
+
                             { type  => 'tablebreak-tr-title',
                               value => 'Price plan options',
                             },
@@ -739,6 +743,34 @@ my $javascript = <<'END';
 
     }
 
+    // some magic to make "supplemental packages" less obvious
+    var supp_pkg_rows = [];
+    function show_supp_pkgs_click() {
+      supp_pkg_rows[0].style.display = '';
+      this.onclick = '';
+      this.style.backgroundColor = '';
+      this.style.border = '';
+      this.style.padding = '';
+    }
+
+    function hide_supp_pkgs() {
+      var all_selects = document.getElementsByTagName('select');
+      for (var i=0; i < all_selects.length; i++) {
+        if ( all_selects[i].id.match(/^supp_dst_pkgpart/) ) {
+          supp_pkg_rows.push( all_selects[i].parentNode.parentNode );
+        }
+      }
+      if ( supp_pkg_rows.length == 1 ) {
+        // there are none configured, so hide the row to create a new one
+        supp_pkg_rows[0].style.display = 'none';
+        var button = document.getElementById('show_supp_pkgs');
+        button.onclick = show_supp_pkgs_click;
+        button.style.backgroundColor = '#cccccc';
+        button.style.border = '1px solid #7e0079';
+        button.style.padding = '1px';
+      }
+    }
+
 END
 
 my $warning =
diff --git a/httemplate/elements/tr-justtitle.html b/httemplate/elements/tr-justtitle.html
index e9eda8b..b87f7e1 100644
--- a/httemplate/elements/tr-justtitle.html
+++ b/httemplate/elements/tr-justtitle.html
@@ -1,5 +1,5 @@
 <TR>
-  <TH CLASS="background" COLSPAN=<% $opt{colspan} || 2 %> ALIGN="left">
+  <TH CLASS="background" COLSPAN=<% $opt{colspan} || 2 %> ALIGN="left" <%$id%>>
     <FONT SIZE="+1"><% $opt{value} %></FONT>
   </TH>
 </TR>
@@ -7,5 +7,6 @@
 <%init>
 
 my %opt = @_;
+my $id = 'ID="'.$opt{id}.'"' if $opt{id};
 
 </%init>

-----------------------------------------------------------------------

Summary of changes:
 httemplate/edit/part_pkg.cgi          |   62 +++++++++++++++++++++++++--------
 httemplate/elements/tr-justtitle.html |    3 +-
 2 files changed, 49 insertions(+), 16 deletions(-)




More information about the freeside-commits mailing list