enable CardFortress in test database, #71513
[freeside.git] / httemplate / elements / popup_link_onclick.html
index d14a2e7..b59720a 100644 (file)
@@ -2,33 +2,46 @@
 
 Example:
 
-  <SCRIPT TYPE="text/javascript" SRC="overlibmws.js"></SCRIPT>
-  <SCRIPT TYPE="text/javascript" SRC="iframecontentmws.js"></SCRIPT>
+  include('/elements/init_overlib.html')
 
   include( '/elements/popup_link_onclick.html', { #hashref or a list, either way
 
     #required
     'action'         => 'content.html', # uri for content of popup
-   
+
     #strongly recommended
     'actionlabel     => 'You clicked',  # popup title
    
+    #alternately, use instead of action, values will be passed unquoted to overlib
+    'js_action'      => 'url',          # javascript variable or expression
+    'js_actionlabel' => 'actionlabel',  # javascript variable or expression   
+
     #opt
-    'width'          => '540',
+    'width'          => 540,
+    'height'         => 336,
     'color'          => '#ff0000',
     'closetext'      => 'Go Away',      # the value '' removes the link
+    'nocenter'       => 0, #bool, elminates centering the popup
+
+    #uncommon opt
+    'frame'          => 0, #bool
+    'scrolling'      => 'yes', #scrollbars:
+                               # 'auto' (default if omitted), 'yes' or 'no'.
+    'nofalse'        => 0, #bool, eliminates "return false;"
+
   } )
 
 </%doc>
 % if ($action) { 
-<% $onclick %>\
+<% $onclick |n %>\
 % }
 <%init>
 
 my( $action, $actionlabel, $frame ) = ( '', '', '' );
 my( $width, $height ) = ( 540, 336 );
-my $closetext = 'Close';
+my $closetext = emt('Close');
 my $color = '#333399';
+my $scrolling = 'auto';
 
 my $params;
 if (ref($_[0]) eq 'HASH') {
@@ -39,24 +52,32 @@ if (ref($_[0]) eq 'HASH') {
   $params = { @_ };
 }
 
-$action      = $params->{'action'}      if exists $params->{'action'};
-$actionlabel = $params->{'actionlabel'} if exists $params->{'actionlabel'};
+$action      = q(') . $params->{'action'} . q(');
+$action      = $params->{'js_action'}   if exists $params->{'js_action'};
+$actionlabel = q(') . $params->{'actionlabel'} . q(');
+$actionlabel = $params->{'js_actionlabel'} if exists $params->{'js_actionlabel'};
 $width       = $params->{'width'}       if exists $params->{'width'};
 $height      = $params->{'height'}      if exists $params->{'height'};
 $color       = $params->{'color'}       if exists $params->{'color'};
 $closetext   = $params->{'closetext'}   if exists $params->{'closetext'};
 $frame       = $params->{'frame'}       if exists $params->{'frame'};
+$scrolling   = $params->{'scrolling'}   if exists $params->{'scrolling'};
 
 #stupid safari is caching the "location" of popup iframs, and submitting them
 #instead of displaying them.  this should prevent that.
-my $popup_name = 'popup-'.time. "-$$-". rand() * 2**32;
+my $popup_name = 'popup-'.random_id();
 
 my $onclick =
-  "overlib( OLiframeContent('$action', $width, $height, '$popup_name' ), ".
-    "CAPTION, '$actionlabel', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, ".
-    "DRAGGABLE, CLOSECLICK, ".
-    "BGCOLOR, '$color', CGCOLOR, '$color', CLOSETEXT, '$closetext'".
+  "overlib( OLiframeContent($action, $width, $height, '$popup_name', 0, '$scrolling' ), ".
+    "CAPTION, $actionlabel, STICKY, AUTOSTATUSCAP, ".
+    ( $params->{'nocenter'} ? "" : "MIDX, 0, MIDY, 0, " ).
+    "DRAGGABLE, CLOSECLICK, TEXTPADDING, 0, BASE, 0, ".
+    "BGCOLOR, '$color', CGCOLOR, '$color', FGCOLOR, '#f8f8f8', ".
+    "CLOSETEXT, '$closetext'".
     ( $frame ? ", FRAME, $frame" : '' ).
-  "); return false;";
+  ");";
+  
+$onclick .= " return false;"
+  unless $params->{'nofalse'};
 
 </%init>