[freeside-commits] branch FREESIDE_4_BRANCH updated. 8c842e33466e953710168bb65c2bbb5765dc537f

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


The branch, FREESIDE_4_BRANCH has been updated
       via  8c842e33466e953710168bb65c2bbb5765dc537f (commit)
      from  a231523f3b7a2b0ed8bfdf10df7c3c3cbdc0028a (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 8c842e33466e953710168bb65c2bbb5765dc537f
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Nov 10 15:57:35 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