componentize conflicting %once subroutines (rt#3250)
authorjeff <jeff>
Sun, 16 Mar 2008 23:05:27 +0000 (23:05 +0000)
committerjeff <jeff>
Sun, 16 Mar 2008 23:05:27 +0000 (23:05 +0000)
httemplate/elements/popup_link-cust_main.html [new file with mode: 0644]
httemplate/elements/popup_link-cust_pkg.html [new file with mode: 0644]
httemplate/elements/popup_link-cust_svc.html [new file with mode: 0644]
httemplate/elements/popup_link.html [new file with mode: 0644]
httemplate/view/cust_main.cgi
httemplate/view/cust_main/packages.html

diff --git a/httemplate/elements/popup_link-cust_main.html b/httemplate/elements/popup_link-cust_main.html
new file mode 100644 (file)
index 0000000..3b1363f
--- /dev/null
@@ -0,0 +1,56 @@
+<%doc>
+
+Example:
+
+  <SCRIPT TYPE="text/javascript" SRC="overlibmws.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="iframecontentmws.js"></SCRIPT>
+
+  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 <A> 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
+  )
+
+</%doc>
+<%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;
+
+</%init>
+<% $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 (file)
index 0000000..cd4aa4c
--- /dev/null
@@ -0,0 +1,59 @@
+<%doc>
+
+Example:
+
+  <SCRIPT TYPE="text/javascript" SRC="overlibmws.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="iframecontentmws.js"></SCRIPT>
+
+  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 <A> 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
+  )
+
+</%doc>
+<%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;
+
+</%init>
+<% $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 (file)
index 0000000..decb82d
--- /dev/null
@@ -0,0 +1,59 @@
+<%doc>
+
+Example:
+
+  <SCRIPT TYPE="text/javascript" SRC="overlibmws.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="iframecontentmws.js"></SCRIPT>
+
+  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 <A> 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
+  )
+
+</%doc>
+<%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;
+
+</%init>
+<% $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 (file)
index 0000000..816856b
--- /dev/null
@@ -0,0 +1,47 @@
+<%doc>
+
+Example:
+
+  <SCRIPT TYPE="text/javascript" SRC="overlibmws.js"></SCRIPT>
+  <SCRIPT TYPE="text/javascript" SRC="iframecontentmws.js"></SCRIPT>
+
+  include( '/elements/popup_link.html', {
+
+    #required
+    'action'         => 'content.html', # uri for content of popup
+    'label'          => 'click me',     # text of <A> tag
+   
+    #strongly recommended
+    'actionlabel     => 'You clicked',  # popup title
+   
+    #opt
+    'width'          => '540',
+    'color'          => '#ff0000',
+    'closetext'      => 'Go Away',      # the value '' removes the link
+  )
+
+</%doc>
+<%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';
+
+</%init>
+%if ($action && $label) {
+<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('<% "$action" %>', <% $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 %></A>
+%}
index 4ca777d..05d1c8d 100755 (executable)
@@ -20,7 +20,15 @@ function areyousure(href, message) {
 %        && $cust_main->ncancelled_pkgs
 %      ) {
 
 %        && $cust_main->ncancelled_pkgs
 %      ) {
 
-  <% cust_cancel_link($cust_main) %> | 
+  <% include( '/elements/popup_link-cust_main.html',
+              { 'action'      => $p. 'misc/cancel_cust.html',
+                'label'       => 'Cancel&nbsp;this&nbsp;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;
 
 </%init>
 die "Customer not found!" unless $cust_main;
 
 </%init>
-<%once>
-
-
-sub cust_cancel_link { cust_popup_link( 'misc/cancel_cust.html',
-                                        'Cancel&nbsp;this&nbsp;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!<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('$p$action', 540, 336, 'pkg_or_svc_action_popup' ), CAPTION, '$actionlabel', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '$color', CGCOLOR, '$color', CLOSETEXT, '' ); return false;">$label</A>!;
-
-# CLOSETEXT, '', 
-#WIDTH, 576, HEIGHT, 128, TEXTSIZE, 3,
-#BGCOLOR, '#ff0000', CGCOLOR, '#ff0000'
-}
-
-</%once>
index 891fa30..b51c024 100755 (executable)
 %      ) {
 %
   <% $s++ ? ' | ' : '' %>
 %      ) {
 %
   <% $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++ ? ' | ' : '' %>
 % } 
 % if ( $curuser->access_right('Bulk change customer packages') ) { 
   <% $s++ ? ' | ' : '' %>
@@ -434,9 +443,6 @@ sub pkg_status_row_colspan {
 
 }
 
 
 }
 
-</%init>
-<%once>
-
 #subroutines
 
 sub get_packages {
 #subroutines
 
 sub get_packages {
@@ -516,64 +522,77 @@ sub pkg_datestr {
   $strip;
 }
 
   $strip;
 }
 
-sub pkg_change_link    { pkg_popup_link('misc/change_pkg.cgi?dummy=value',
-                                          'Change&nbsp;package',
-                                          'Change',
-                                          '',
-                                          @_
-                                       );
-                       }
-
-sub pkg_suspend_link   { pkg_popup_link( 'misc/cancel_pkg.html?method=suspend',
-                                         'Suspend&nbsp;now',
-                                         'Suspend',
-                                         '#FF9900',
-                                         @_
-                                       );
-                       }
-
-sub pkg_adjourn_link   { pkg_popup_link( 'misc/cancel_pkg.html?method=adjourn',
-                                         'Suspend&nbsp;later',
-                                         'Adjourn',
-                                         '#CC6600',
-                                         @_
-                                       );
-                       }
+sub pkg_change_link { include( '/elements/popup_link-cust_pkg.html',
+                               { 'action'      => $p. 'misc/change_pkg.cgi?dummy=value',
+                                 'label'       => 'Change&nbsp;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&nbsp;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&nbsp;later',
+                                  'actionlabel' => 'Adjourn',
+                                  'color'       => '#CC6600',
+                                  'cust_pkg'    => shift,
+                                }
+                              )
+                     }
 
 sub pkg_unsuspend_link { pkg_link('misc/unsusp_pkg',    'Unsuspend',           @_ ); }
 
 sub pkg_unsuspend_link { pkg_link('misc/unsusp_pkg',    'Unsuspend',           @_ ); }
-sub pkg_expire_link    { pkg_link('misc/expire_pkg',    'Cancel&nbsp;later',   @_ ); }
 sub pkg_dates_link     { pkg_link('edit/REAL_cust_pkg', 'Edit&nbsp;dates',     @_ ); }
 
 sub pkg_dates_link     { pkg_link('edit/REAL_cust_pkg', 'Edit&nbsp;dates',     @_ ); }
 
-sub pkg_cancel_link    { pkg_popup_link( 'misc/cancel_pkg.html?method=cancel',
-                                         'Cancel&nbsp;now',
-                                         'Cancel',
-                                         '#ff0000',
-                                         @_
-                                       );
-                       }
-
-sub pkg_expire_link    { pkg_popup_link( 'misc/cancel_pkg.html?method=expire',
-                                         'Cancel&nbsp;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&nbsp;new&nbsp;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&nbsp;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&nbsp;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&nbsp;new&nbsp;package',
+                                'actionlabel' => 'Order new package',
+                                'color'       => '#333399',
+                                'cust_svc'    => shift,
+                              }
+                            )
                    }
 
 sub pkg_event_link {
                    }
 
 sub pkg_event_link {
@@ -589,33 +608,6 @@ sub pkg_link {
   qq!<a href="$p$action.cgi?!. $cust_pkg->pkgnum. qq!">$label</a>!;
 }
 
   qq!<a href="$p$action.cgi?!. $cust_pkg->pkgnum. qq!">$label</a>!;
 }
 
-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!<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('$p$action', $width, 336, 'pkg_or_svc_action_popup' ), CAPTION, '$actionlabel', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '$color', CGCOLOR, '$color' ); return false;">$label</A>!;
-}
-
 sub pkg_customize_link {
   my $cust_pkg = shift or return '';
   my $custnum = $cust_pkg->custnum;
 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</A>!;
 }
 
     qq!">Customize</A>!;
 }
 
-</%once>
+</%init>