diff options
author | Ivan Kohler <ivan@freeside.biz> | 2016-11-10 15:57:34 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2016-11-10 15:57:34 -0800 |
commit | b5d165e21a606efaa47f4ef4b4a49d96df00361d (patch) | |
tree | f7a7341fe2cc712c6782e82e083a9515ba3fb43f /httemplate | |
parent | e61046ea9f0efc021d568bbda0f7759ad51881d3 (diff) |
clean up package list UI: put actions in a dropdown
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/view/cust_main/packages/package.html | 307 | ||||
-rwxr-xr-x | httemplate/view/cust_main/packages/section.html | 1 |
2 files changed, 159 insertions, 149 deletions
diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html index 1b397d851..ce175a27e 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 490f09c12..160166264 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 &> |