[freeside-commits] branch master updated. b5d165e21a606efaa47f4ef4b4a49d96df00361d

Ivan ivan at 420.am
Thu Nov 10 15:57:35 PST 2016


The branch, master has been updated
       via  b5d165e21a606efaa47f4ef4b4a49d96df00361d (commit)
      from  e61046ea9f0efc021d568bbda0f7759ad51881d3 (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 b5d165e21a606efaa47f4ef4b4a49d96df00361d
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Nov 10 15:57:34 2016 -0800

    clean up package list UI: put actions in a dropdown

diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html
index 1b397d8..ce175a2 100644
--- a/httemplate/view/cust_main/packages/package.html
+++ b/httemplate/view/cust_main/packages/package.html
@@ -7,6 +7,10 @@
              ? &{ $opt{before_pkg_callback} }( $cust_pkg )
              : ''
         %>
+
+% ###
+% # Package
+% ###
         <A NAME="cust_pkg<% $cust_pkg->pkgnum %>"
            ID  ="cust_pkg<% $cust_pkg->pkgnum %>"
         ><% $opt{show_pkgnum} ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B></A>
@@ -42,79 +46,18 @@
       </TD>
     </TR>
 
-
-    <TR>
-      <TD COLSPAN=2>
-        <FONT SIZE=-1>
-
-%         if ( $part_pkg->freq eq '0' and !$opt{no_links} ) {
-%           # One-time charge.  Nothing you can do with this, unless:
-%           if ( $curuser->access_right('Modify one-time charge') ) {
-                ( <%onetime_change_link($cust_pkg)%> )
-%           }
-%           # also, you can discount it
-%           if ( $can_discount_pkg ) {
-              ( <%pkg_discount_link($cust_pkg)%> )
-%           }
-          <BR>
-%
-%         } elsif ( !$cust_pkg->get('cancel') and !$opt{no_links} ) {
-%
-%           if ( $change_from ) {
-%             # This is the target package for a future change.
-%             # Nothing you can do with it besides modify/cancel the 
-%             # future change, and that's on the current package.
-%           } elsif ( $supplemental ) {
-%             # Supplemental packages can't be changed independently.
-%             # Show only "Add comments" and "Add invoice details".
-%           } else {
-%             # the usual case: links to change package definition,
-%             # discount, and customization
-%             my $br = 0;
-%             if ( $curuser->access_right('Change customer package') ) {
-%               $br=1;
-                ( <%pkg_change_link($cust_pkg)%> )
-%             } 
-%
-%             if ( $can_discount_pkg ) {
-%               $br=1;
-                ( <%pkg_discount_link($cust_pkg)%> )
-%             }
-%
-%             if ( $curuser->access_right('Customize customer package') ) {
-%               $br=1;
-                ( <%pkg_customize_link($cust_pkg,$part_pkg)%> )
-%             } 
-%
-              <% $br ? '<BR>' : '' %>
-%           } 
-
-%           if (    (    $curuser->access_right('Billing event reports')
-%                     || $curuser->access_right('View customer billing events')
-%                   )
-%                && $cust_pkg->exists_cust_event
-%              ) {
-              ( <%pkg_event_link($cust_pkg)%> )
-%           }
-%         } # a canceled recurring package, or else no_links is in effect
-
-        </FONT>
-      </TD>
-    </TR>
-
-
+% ###
+% # Quantity
+% ###
+% if ( $cust_pkg->quantity > 1 ) {
     <TR>
       <TD COLSPAN=2>
-
-%       my $change_quan_label = 'Change quantity';
-%       if ( $cust_pkg->quantity > 1 ) {
-%         $change_quan_label = 'change';
                 <% mt('Quantity:') |h %> 
           <B><% $cust_pkg->quantity %></B>
-%       }
 
 %       if ( $curuser->access_right('Change customer package')
 %              && ! $cust_pkg->get('cancel')
+%              && ! $change_from
 %              && ! $supplemental
 %              && $part_pkg->freq ne '0'
 %              && ! $opt{no_links}
@@ -122,40 +65,41 @@
 %          )
 %       {
           <FONT SIZE="-1">
-            ( <% pkg_change_quantity_link($cust_pkg, $change_quan_label) %> )
+            ( <% pkg_change_quantity_link($cust_pkg, 'change') %> )
           </FONT>
 %       }
-
       </TD>
     </TR>
+% }
 
-
+% ###
+% # Sales person
+% ###
+% if ( $cust_pkg->salesnum ) {
     <TR>
       <TD COLSPAN=2>
-
-%       my $change_sales_label = 'Change sales person';
-%       if ( $cust_pkg->salesnum ) {
-%         $change_sales_label = 'change';
                 <% mt('Sales Person:') |h %> 
           <B><% $cust_pkg->salesperson |h %></B>
-%       }
-
 %       if ( $curuser->access_right('Change customer package')
 %              && ! $cust_pkg->get('cancel')
+%              && ! $change_from
 %              && ! $supplemental
 %              #&& $part_pkg->freq ne '0'
 %              && ! $opt{no_links}
 %          )
 %       {
         <FONT SIZE="-1">
-          ( <% pkg_change_salesnum_link($cust_pkg, $change_sales_label) %> )
+          ( <% pkg_change_salesnum_link($cust_pkg, 'change') %> )
         </FONT>
 %     }
-
       </TD>
     </TR>
+% }
 
 
+% ###
+% # Invoice details & comments
+% ###
 %   my $editi = $curuser->access_right('Edit customer package invoice details');
 %   my $editc = $curuser->access_right('Edit customer package comments');
 %   my @cust_pkg_detail = $cust_pkg->cust_pkg_detail;
@@ -198,18 +142,6 @@
           </TD>
 %       } else {
           <TD>
-%           if ( $editi && ! $cust_pkg->get('cancel') && ! $opt{no_links} ) {
-              <FONT SIZE="-1">
-                ( <% include('/elements/popup_link.html', { 
-                               'action'      => $editlink. 'I',
-                               'label'       => emt('Add invoice details'),
-                               'actionlabel' => emt('Add invoice details'),
-                               'color'       => '#333399',
-                               'width'       => 763,
-                            })
-                  %> )
-              </FONT>
-%           }
           </TD>
 %       }
 
@@ -242,18 +174,6 @@
           </TD>
 %       } else {
           <TD>
-%           if ( $editc && ! $opt{no_links} ) {
-              <FONT SIZE="-1">
-                ( <& /elements/popup_link.html, { 
-                               'action'      => $editlink. 'C',
-                               'label'       => emt('Add comments'),
-                               'actionlabel' => emt('Add comments'),
-                               'color'       => '#333399',
-                               'width'       => 763,
-                            }
-                  &> )
-              </FONT>
-%           }
           </TD>
 %       }
 
@@ -286,7 +206,144 @@
   </TABLE>
 % }
 
+
+% ###
+% # Package actions dropdown
+% ###
+% unless ( $opt{no_links} ) {
+
+  <TABLE CLASS="inv package"> 
+    <TR>
+      <TD COLSPAN=2>
+
+%       my $plink = "pkgnum=$pkgnum";
+%       my $reg_recur_cond =  sub { $part_pkg->freq ne '0'
+%                                       && ! $change_from
+%                                       && ! $supplemental
+%                                       && ! $cust_pkg->get('cancel')
+%                                 };
+
+        <& /elements/dropdown-menu.html,
+             id      => 'cust_pkg'. $cust_pkg->pkgnum. '_menu',
+             bgcolor => $opt{row} % 2 ? '#ffffff' : '#eeeeee',
+             menu    => [
+               [ 
+
+                 #TODO: order/group these better
+
+                 { label => 'Package actions',
+                   content => '<FONT STYLE="text-decoration:underline"><B>Package actions</B></FONT> <IMG SRC="'.$p. 'images/arrow.down.black.png">',
+                 },
+
+                 { label       => 'Modify one-time charge',
+                   acl         => 'Modify one-time charge',
+                   condition   => sub { $part_pkg->freq eq '0' },
+                   url         => "edit/quick-charge.html?change_$plink",
+                 },
+
+                 { label       => 'Change package',
+                   acl         => 'Change customer package',
+                   condition   => $reg_recur_cond,
+                   popup       => "misc/change_pkg.cgi?$plink".
+                                    ';locationnum='. $cust_pkg->locationnum.
+                   actionlabel => emt('Change package'),
+                   #width       => 768,
+                   width       => 960,
+                   height      => 538,
+                 },
+
+                 { label       => 'Discount package',
+                   condition   => sub { $part_pkg->freq ne '0'
+                                         && ! $change_from
+                                         && ! $supplemental
+                                         && ! $cust_pkg->get('cancel')
+                                         && $can_discount_pkg
+                                      },
+                   popup       => "edit/cust_pkg_discount.html?$plink".
+                   actionlabel => emt('Discount package'),
+                   width       => 616,
+                 },
+
+                 { label       => 'Customize package',
+                   acl         => 'Customize customer package',
+                   condition   => $reg_recur_cond,
+                   url         => "edit/part_pkg.cgi?$plink".
+                                    ';clone='. $part_pkg->pkgpart,
+                 },
+
+                 { label       => 'View package events',
+                   acl         => [ 'Billing event reports',
+                                    'View customer billing events', ],
+                   condition   => sub { $cust_pkg->exists_cust_event },
+                   url         => "search/cust_event.html?$plink",
+                 },
+
+                 { label       => 'Change quantity',
+                   acl         => 'Change customer package',
+                   condition   => sub { $part_pkg->freq ne '0'
+                                        && ! $change_from
+                                        && ! $supplemental
+                                        && ! $cust_pkg->get('cancel')
+                                        && $opt{'invoice-unitprice'}
+                                  },
+                   popup       => "edit/cust_pkg_quantity.html?$plink",
+
+                   actionlabel => emt('Change quantity'),
+                   width       => 390,
+                   height      => 220,
+                 },
+
+                 { label       => 'Change sales person',
+                   acl         => 'Change customer package',
+                   condition   => sub { ! $change_from
+                                        && ! $supplemental
+                                        && ! $cust_pkg->get('cancel')
+                                  },
+                   popup       => "edit/cust_pkg_salesnum.html?$plink",
+                   actionlabel => emt('Change sales persion'),
+                   width       => 390,
+                   height      => 220,
+                 },
+
+                 { label       => (@invoice_detail ? 'Edit' : 'Add').
+                                    ' invoice details',
+                   acl         => 'Edit customer package invoice details',
+                   condition   => sub { ! $cust_pkg->get('cancel') },
+                   popup       => "edit/cust_pkg_detail.html?$plink".
+                                    ';detailtype=I',
+                   actionlabel => emt( (@invoice_detail ? 'Edit' : 'Add').
+                                       ' invoice details'
+                                     ),
+                   width       => 768,
+                },
+
+                { label       => (@comments ? 'Edit' : 'Add'). ' comments',
+                   acl         => 'Edit customer package comments',
+                   popup       => "edit/cust_pkg_detail.html?$plink".
+                                    ';detailtype=C',
+                   actionlabel => emt( (@comments ? 'Edit' : 'Add').
+                                       ' comments'
+                                     ),
+                   width       => 768,
+                },
+
+                 { label   => '-',
+                   content => '-',
+                 },
+
+
+               ],
+             ],
+        &>
+
+      </TD>
+    </TR>
+  </TABLE>
+
+% }
+
   <% join('', map '</DIV>', @marker ) %>
+
 </TD>
 
 <%init>
@@ -334,26 +391,6 @@ sub pkg_link {
   qq!<a href="$p$action.cgi?!. $cust_pkg->pkgnum. qq!">$label</a>!;
 }
 
-sub pkg_change_link {
-  my $cust_pkg = shift;
-  my $locationnum = $cust_pkg->locationnum;
-  include( '/elements/popup_link-cust_pkg.html',
-    'action'      => $p. "misc/change_pkg.cgi?locationnum=$locationnum",
-    'label'       => emt('Change package'),
-    'actionlabel' => emt('Change'),
-    'cust_pkg'    => $cust_pkg,
-    'width'       => 960,
-    'height'      => 538,
-  );
-}
-
-sub onetime_change_link {
-  my $cust_pkg = shift;
-  my $pkgnum = $cust_pkg->pkgnum;
-  '<A HREF="' . $fsurl . "edit/quick-charge.html?change_pkgnum=$pkgnum" .
-  '">' . emt('Modify one-time charge') . '</A>'
-}
-
 sub pkg_change_location_link {
   my $cust_pkg = shift;
   my $pkgpart = $cust_pkg->pkgpart;
@@ -393,34 +430,6 @@ sub pkg_change_salesnum_link {
   );
 }
 
-sub pkg_discount_link {
-  my $cust_pkg = shift or return '';
-  include( '/elements/popup_link-cust_pkg.html',
-    'action'      => $p.'edit/cust_pkg_discount.html',
-    'label'       => emt('Discount'),
-    'actionlabel' => emt('Discount'),
-    'cust_pkg'    => $cust_pkg,
-    'width'       => 616,
-  );
-}
-
-sub pkg_customize_link {
-  my $cust_pkg = shift or return '';
-  my $part_pkg = shift;
-  my $custnum = $cust_pkg->custnum;
-  qq!<A HREF="${p}edit/part_pkg.cgi?!.
-    "clone=". $part_pkg->pkgpart. ';'.
-    "pkgnum=". $cust_pkg->pkgnum.
-    qq!">!.emt('Customize').'</A>';
-}
-
-sub pkg_event_link {
-  my($cust_pkg) = @_;
-  qq!<a href="${p}search/cust_event.html?pkgnum=!. $cust_pkg->pkgnum. qq!">!.
-  emt('View package events').
-  '</a>';
-}
-
 # figure out if this user will be able to edit either the setup or recurring
 # discounts for this package
 my $can_discount_pkg = 0;
diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html
index 490f09c..1601662 100755
--- a/httemplate/view/cust_main/packages/section.html
+++ b/httemplate/view/cust_main/packages/section.html
@@ -34,6 +34,7 @@
 % my ($cust_pkg, %iopt) = @_;
 % $iopt{'cust_pkg'} = $cust_pkg;
 % $iopt{'part_pkg'} = $cust_pkg->part_pkg;
+% $iopt{'row'} = $row;
   <!--pkgnum: <% $cust_pkg->pkgnum %>-->
   <TR CLASS="row<%$row % 2%>">
     <& package.html, %iopt &>

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

Summary of changes:
 httemplate/view/cust_main/packages/package.html |  307 ++++++++++++-----------
 httemplate/view/cust_main/packages/section.html |    1 +
 2 files changed, 159 insertions(+), 149 deletions(-)




More information about the freeside-commits mailing list