From 5ea49c83c4a5b71a1e7baf2b6a75fe50816fdce5 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 16 Mar 2008 23:05:27 +0000 Subject: [PATCH] componentize conflicting %once subroutines (rt#3250) --- httemplate/elements/popup_link-cust_main.html | 56 +++++++++ httemplate/elements/popup_link-cust_pkg.html | 59 +++++++++ httemplate/elements/popup_link-cust_svc.html | 59 +++++++++ httemplate/elements/popup_link.html | 47 ++++++++ httemplate/view/cust_main.cgi | 40 ++----- httemplate/view/cust_main/packages.html | 164 ++++++++++++-------------- 6 files changed, 308 insertions(+), 117 deletions(-) create mode 100644 httemplate/elements/popup_link-cust_main.html create mode 100644 httemplate/elements/popup_link-cust_pkg.html create mode 100644 httemplate/elements/popup_link-cust_svc.html create mode 100644 httemplate/elements/popup_link.html diff --git a/httemplate/elements/popup_link-cust_main.html b/httemplate/elements/popup_link-cust_main.html new file mode 100644 index 000000000..3b1363f49 --- /dev/null +++ b/httemplate/elements/popup_link-cust_main.html @@ -0,0 +1,56 @@ +<%doc> + +Example: + + + + + include( '/elements/cust_popup_link.html', { + + #required + 'action' => 'content.html', # uri for content of popup which should + # be suitable for appending keywords + 'label' => 'click me', # text of tag + 'cust_main' => $cust_main # a FS::cust_main object + + #strongly recommended (you want a title, right?) + 'actionlabel => 'You clicked', # popup title + + #opt + 'width' => '540', + 'color' => '#ff0000', + 'closetext' => 'Go Away', # the value '' removes the link + ) + + +<%init> +my($params, $action, $label, $actionlabel, $color, $cust_main, $width); +my $closetext = ''; +if (ref(@_[0]) eq 'HASH') { + $params = shift; + foreach (qw(action label actionlabel width color)) { + $action = $params->{'action'} if exists $params->{'action'}; + $label = $params->{'label'} if exists $params->{'label'}; + $actionlabel = $params->{'actionlabel'} if exists $params->{'actionlabel'}; + $width = $params->{'width'} if exists $params->{'width'}; + $color = $params->{'color'} if exists $params->{'color'}; + $closetext = $params->{'closetext'} if exists $params->{'closetext'}; + $cust_main = $params->{'cust_main'} if exists $params->{'cust_main'}; + } +}else{ # deprecated + ($action, $label, $actionlabel, $color, $cust_main) = @_; +} + +$action .= '?'. $cust_main->custnum; + + +<% $cust_main + ? include('/elements/popup_link.html', { 'action' => $action, + 'label' => $label, + 'actionlabel' => $actionlabel, + 'color' => $color, + 'closetext' => $closetext, + } + ) + : '' +%> diff --git a/httemplate/elements/popup_link-cust_pkg.html b/httemplate/elements/popup_link-cust_pkg.html new file mode 100644 index 000000000..cd4aa4c2e --- /dev/null +++ b/httemplate/elements/popup_link-cust_pkg.html @@ -0,0 +1,59 @@ +<%doc> + +Example: + + + + + include( '/elements/pkg_popup_link.html', { + + #required + 'action' => 'content.html', # uri for content of popup which should + # be suitable for appending '&stuff...' + 'label' => 'click me', # text of tag + 'cust_pkg' => $cust_pkg # a FS::cust_pkg object + + #strongly recommended (you want a title, right?) + 'actionlabel => 'You clicked', # popup title + + #opt + 'width' => '540', + 'color' => '#ff0000', + 'closetext' => 'Go Away', # the value '' removes the link + ) + + +<%init> +my($params, $action, $label, $actionlabel, $color, $cust_pkg, $width); +my $closetext = 'Close'; +if (ref(@_[0]) eq 'HASH') { + $params = shift; + foreach (qw(action label actionlabel width color)) { + $action = $params->{'action'} if exists $params->{'action'}; + $label = $params->{'label'} if exists $params->{'label'}; + $actionlabel = $params->{'actionlabel'} if exists $params->{'actionlabel'}; + $width = $params->{'width'} if exists $params->{'width'}; + $color = $params->{'color'} if exists $params->{'color'}; + $closetext = $params->{'closetext'} if exists $params->{'closetext'}; + $cust_pkg = $params->{'cust_pkg'} if exists $params->{'cust_pkg'}; + } +}else{ # deprecated + ($action, $label, $actionlabel, $color, $cust_pkg) = @_; +} + +$action .= '&pkgnum='. $cust_pkg->pkgnum; +$actionlabel .= ' package '. $cust_pkg->pkgnum; +$width ||= 768; + + +<% $cust_pkg + ? include('/elements/popup_link.html', { 'action' => $action, + 'label' => $label, + 'actionlabel' => $actionlabel, + 'color' => $color, + 'width' => $width, + 'closetext' => $closetext, + } + ) + : '' +%> diff --git a/httemplate/elements/popup_link-cust_svc.html b/httemplate/elements/popup_link-cust_svc.html new file mode 100644 index 000000000..decb82d97 --- /dev/null +++ b/httemplate/elements/popup_link-cust_svc.html @@ -0,0 +1,59 @@ +<%doc> + +Example: + + + + + include( '/elements/svc_popup_link.html', { + + #required + 'action' => 'content.html', # uri for content of popup which should + # be suitable for appending '?svcnum=' + 'label' => 'click me', # text of tag + 'cust_svc' => $cust_svc # a FS::cust_svc object + + #strongly recommended (you want a title, right?) + 'actionlabel => 'You clicked', # popup title + + #opt + 'width' => '540', + 'color' => '#ff0000', + 'closetext' => 'Go Away', # the value '' removes the link + ) + + +<%init> +my($params, $action, $label, $actionlabel, $cust_svc, $color, $width); +my $closetext = 'Close'; +if (ref(@_[0]) eq 'HASH') { + $params = shift; + foreach (qw(action label actionlabel width color)) { + $action = $params->{'action'} if exists $params->{'action'}; + $label = $params->{'label'} if exists $params->{'label'}; + $actionlabel = $params->{'actionlabel'} if exists $params->{'actionlabel'}; + $width = $params->{'width'} if exists $params->{'width'}; + $color = $params->{'color'} if exists $params->{'color'}; + $closetext = $params->{'closetext'} if exists $params->{'closetext'}; + $cust_svc = $params->{'cust_svc'} if exists $params->{'cust_svc'}; + } +}else{ # deprecated + ($action, $label, $actionlabel, $cust_svc) = @_; +} + +$action .= '?svcnum='. $cust_svc->svcnum; +$actionlabel .= ' service '. $cust_svc->svcnum; +$width ||= 392; + + +<% $cust_svc + ? include('/elements/popup_link.html', { 'action' => $action, + 'label' => $label, + 'actionlabel' => $actionlabel, + 'color' => $color, + 'width' => $width, + 'closetext' => $closetext, + } + ) + : '' +%> diff --git a/httemplate/elements/popup_link.html b/httemplate/elements/popup_link.html new file mode 100644 index 000000000..816856bba --- /dev/null +++ b/httemplate/elements/popup_link.html @@ -0,0 +1,47 @@ +<%doc> + +Example: + + + + + include( '/elements/popup_link.html', { + + #required + 'action' => 'content.html', # uri for content of popup + 'label' => 'click me', # text of tag + + #strongly recommended + 'actionlabel => 'You clicked', # popup title + + #opt + 'width' => '540', + 'color' => '#ff0000', + 'closetext' => 'Go Away', # the value '' removes the link + ) + + +<%init> +my($params, $action, $label, $actionlabel, $width, $color); +my $closetext = 'Close'; +if (ref(@_[0]) eq 'HASH') { + $params = shift; + foreach (qw(action label actionlabel width color)) { + $action = $params->{'action'} if exists $params->{'action'}; + $label = $params->{'label'} if exists $params->{'label'}; + $actionlabel = $params->{'actionlabel'} if exists $params->{'actionlabel'}; + $width = $params->{'width'} if exists $params->{'width'}; + $color = $params->{'color'} if exists $params->{'color'}; + $closetext = $params->{'closetext'} if exists $params->{'closetext'}; + } +}else{ # deprecated + ($action, $label, $actionlabel, $width) = @_; +} + +$width ||= 540; +$color ||= '#333399'; + + +%if ($action && $label) { +', <% $width %>, 336, 'pkg_or_svc_action_popup' ), CAPTION, '<% $actionlabel %>', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '<% $color %>', CGCOLOR, '<% $color %>', CLOSETEXT, '<% $closetext %>' ); return false;"><% $label %> +%} diff --git a/httemplate/view/cust_main.cgi b/httemplate/view/cust_main.cgi index 4ca777d6a..05d1c8d69 100755 --- a/httemplate/view/cust_main.cgi +++ b/httemplate/view/cust_main.cgi @@ -20,7 +20,15 @@ function areyousure(href, message) { % && $cust_main->ncancelled_pkgs % ) { - <% cust_cancel_link($cust_main) %> | + <% include( '/elements/popup_link-cust_main.html', + { 'action' => $p. 'misc/cancel_cust.html', + 'label' => 'Cancel this customer', + 'actionlabel' => 'Confirm Cancellation', + 'color' => '#ff0000', + 'cust_main' => $cust_main, + } + ) + %> | % } @@ -155,33 +163,3 @@ my $cust_main = qsearchs( { die "Customer not found!" unless $cust_main; -<%once> - - -sub cust_cancel_link { cust_popup_link( 'misc/cancel_cust.html', - 'Cancel this customer', - 'Confirm Cancellation', - '#ff0000', - @_, - ); -} - -#false laziness w/view/cust_main/packages.html - -sub cust_popup_link { - my($action, $label, $actionlabel, $color, $cust_main) = @_; - $action .= '?'. $cust_main->custnum; - popup_link($action, $label, $actionlabel, $color); -} - -sub popup_link { - my($action, $label, $actionlabel, $color) = @_; - $color ||= '#333399'; - qq!$label!; - -# CLOSETEXT, '', -#WIDTH, 576, HEIGHT, 128, TEXTSIZE, 3, -#BGCOLOR, '#ff0000', CGCOLOR, '#ff0000' -} - - diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html index 891fa3009..b51c02494 100755 --- a/httemplate/view/cust_main/packages.html +++ b/httemplate/view/cust_main/packages.html @@ -11,7 +11,16 @@ % ) { % <% $s++ ? ' | ' : '' %> - <% popup_link('edit/quick-charge.html?custnum='. $cust_main->custnum, 'One-time charge', 'One-time charge', '#333399', 545) %> + <% include('/elements/popup_link.html', + { + 'action' => $p. 'edit/quick-charge.html?custnum='. $cust_main->custnum, + 'label' => 'One-time charge', + 'actionlabel' => 'One-time charge', + 'color' => '#333399', + 'width' => 545, + }) + %> + % } % if ( $curuser->access_right('Bulk change customer packages') ) { <% $s++ ? ' | ' : '' %> @@ -434,9 +443,6 @@ sub pkg_status_row_colspan { } - -<%once> - #subroutines sub get_packages { @@ -516,64 +522,77 @@ sub pkg_datestr { $strip; } -sub pkg_change_link { pkg_popup_link('misc/change_pkg.cgi?dummy=value', - 'Change package', - 'Change', - '', - @_ - ); - } - -sub pkg_suspend_link { pkg_popup_link( 'misc/cancel_pkg.html?method=suspend', - 'Suspend now', - 'Suspend', - '#FF9900', - @_ - ); - } - -sub pkg_adjourn_link { pkg_popup_link( 'misc/cancel_pkg.html?method=adjourn', - 'Suspend later', - 'Adjourn', - '#CC6600', - @_ - ); - } +sub pkg_change_link { include( '/elements/popup_link-cust_pkg.html', + { 'action' => $p. 'misc/change_pkg.cgi?dummy=value', + 'label' => 'Change package', + 'actionlabel' => 'Change', + 'cust_pkg' => shift, + } + ) + } + +sub pkg_suspend_link { include( '/elements/popup_link-cust_pkg.html', + { 'action' => $p. 'misc/cancel_pkg.html?method=suspend', + 'label' => 'Suspend now', + 'actionlabel' => 'Suspend', + 'color' => '#FF9900', + 'cust_pkg' => shift, + } + ) + } + + +sub pkg_adjourn_link { include( '/elements/popup_link-cust_pkg.html', + { 'action' => $p. 'misc/cancel_pkg.html?method=adjourn', + 'label' => 'Suspend later', + 'actionlabel' => 'Adjourn', + 'color' => '#CC6600', + 'cust_pkg' => shift, + } + ) + } sub pkg_unsuspend_link { pkg_link('misc/unsusp_pkg', 'Unsuspend', @_ ); } -sub pkg_expire_link { pkg_link('misc/expire_pkg', 'Cancel later', @_ ); } sub pkg_dates_link { pkg_link('edit/REAL_cust_pkg', 'Edit dates', @_ ); } -sub pkg_cancel_link { pkg_popup_link( 'misc/cancel_pkg.html?method=cancel', - 'Cancel now', - 'Cancel', - '#ff0000', - @_ - ); - } - -sub pkg_expire_link { pkg_popup_link( 'misc/cancel_pkg.html?method=expire', - 'Cancel later', - 'Expire', #"Cancel package $num later" - '#CC0000', - @_ - ); - } - -sub svc_recharge_link { svc_popup_link( 'misc/recharge_svc.html', - 'Recharge', - 'Recharge', - '#333399', - @_ - ); - } - -sub order_pkg_link { cust_popup_link( 'misc/order_pkg.html', - 'Order new package', - 'Order new package', - '#333399', - @_ - ); +sub pkg_cancel_link { include( '/elements/popup_link-cust_pkg.html', + { 'action' => $p. 'misc/cancel_pkg.html?method=cancel', + 'label' => 'Cancel now', + 'actionlabel' => 'Cancel', + 'color' => '#ff0000', + 'cust_pkg' => shift, + } + ) + } + +sub pkg_expire_link { include( '/elements/popup_link-cust_pkg.html', + { 'action' => $p. 'misc/cancel_pkg.html?method=expire', + 'label' => 'Cancel later', + 'actionlabel' => 'Expire', #"Cancel package $num later" + 'color' => '#CC0000', + 'cust_pkg' => shift, + } + ) + } + +sub svc_recharge_link { include( '/elements/popup_link-cust_svc.html', + { 'action' => $p. 'misc/recharge_svc.html', + 'label' => 'Recharge', + 'actionlabel' => 'Recharge', + 'color' => '#333399', + 'cust_svc' => shift, + } + ) + } + +sub order_pkg_link { include( '/elements/popup_link-cust_main.html', + { 'action' => $p. 'misc/order_pkg.html', + 'label' => 'Order new package', + 'actionlabel' => 'Order new package', + 'color' => '#333399', + 'cust_svc' => shift, + } + ) } sub pkg_event_link { @@ -589,33 +608,6 @@ sub pkg_link { qq!$label!; } -sub pkg_popup_link { - my($action, $label, $actionlabel, $color, $cust_pkg) = @_; - $action .= '&pkgnum='. $cust_pkg->pkgnum; - $actionlabel .= ' package '. $cust_pkg->pkgnum; - popup_link($action, $label, $actionlabel, $color, 768); -} - -sub svc_popup_link { - my($action, $label, $actionlabel, $color, $cust_svc) = @_; - $action .= '?svcnum='. $cust_svc->svcnum; - $actionlabel .= ' service '. $cust_svc->svcnum; - popup_link($action, $label, $actionlabel, $color); -} - -sub cust_popup_link { - my($action, $label, $actionlabel, $color, $cust_main) = @_; - $action .= '?'. $cust_main->custnum; - popup_link($action, $label, $actionlabel, $color); -} - -sub popup_link { - my($action, $label, $actionlabel, $color, $width) = @_; - $color ||= '#333399'; - $width ||= 540; - qq!$label!; -} - sub pkg_customize_link { my $cust_pkg = shift or return ''; my $custnum = $cust_pkg->custnum; @@ -626,4 +618,4 @@ sub pkg_customize_link { qq!">Customize!; } - + -- 2.11.0