[freeside-commits] branch master updated. 8fbc05bbaf97373d061ccb52f3a5e227237980bb

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


The branch, master has been updated
       via  8fbc05bbaf97373d061ccb52f3a5e227237980bb (commit)
      from  8d3fcac6a40fe765c8a1a11e5c180494e9388b69 (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 8fbc05bbaf97373d061ccb52f3a5e227237980bb
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Jul 10 15:58:34 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 c13caf5..7e67c83 100755
--- a/httemplate/edit/part_pkg.cgi
+++ b/httemplate/edit/part_pkg.cgi
@@ -13,7 +13,8 @@
      'html_bottom'           => $html_bottom,
      'body_etc'              =>
        'onLoad="agent_changed(document.edit_topform.agentnum);
-                aux_planchanged(document.edit_topform.plan)"',
+                aux_planchanged(document.edit_topform.plan);
+                hide_supp_pkgs()"',
 
      'begin_callback'        => $begin_callback,
      'end_callback'          => $end_callback,
@@ -61,7 +62,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',
@@ -275,19 +276,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,
                    },
@@ -330,6 +318,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',
                    },
@@ -793,6 +797,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