Author: richter
Date: Tue Jan 16 23:22:19 2007
New Revision: 496949

URL: http://svn.apache.org/viewvc?view=rev&rev=496949
Log:
Update Embperl::Form

Modified:
    perl/embperl/trunk/Embperl/Form.pm
    perl/embperl/trunk/Embperl/Form/Control/addremove.pm
    perl/embperl/trunk/Embperl/Form/Control/checkbox.pm
    perl/embperl/trunk/Embperl/Form/Control/grid.pm
    perl/embperl/trunk/Embperl/Form/Control/radio.pm
    perl/embperl/trunk/Embperl/Form/Control/select.pm
    perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm
    perl/embperl/trunk/Embperl/Form/Control/tabs.pm

Modified: perl/embperl/trunk/Embperl/Form.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form.pm?view=diff&rev=496949&r1=496948&r2=496949
==============================================================================
--- perl/embperl/trunk/Embperl/Form.pm (original)
+++ perl/embperl/trunk/Embperl/Form.pm Tue Jan 16 23:22:19 2007
@@ -58,7 +58,9 @@
     $self -> {validate_rules} = [] ;
     $self -> {toplevel}       = $toplevel ;
     $self -> {valign}         = $options -> {valign}   || 'top' ;
-
+    $self -> {jsnamespace}    = $options -> {jsnamespace} || '' ;
+    $self -> {jsnamespace}   .= '.' if ($self -> {jsnamespace}) ;
+    
     bless $self, $class if (!ref $class);
 
     $Embperl::FormData::forms{"$self"} = $self ;
@@ -455,7 +457,7 @@
 
 # ---------------------------------------------------------------------------
 #
-#   init_data - 
+#   init_data -
 #
 
 sub init_data
@@ -842,6 +844,16 @@
 =item * valign
 
 valign for control cells. Defaults to 'top' .
+
+=item * jsnamespace
+
+Give the JavaScript Namespace. This allows to load js Files in
+a top frame or different frame, which will speed up page loading,
+because the browser does not need to reload the js code on every load.
+
+Example:
+
+    jsnamespace => 'top'
 
 =back
 

Modified: perl/embperl/trunk/Embperl/Form/Control/addremove.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/addremove.pm?view=diff&rev=496949&r1=496948&r2=496949
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/addremove.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/addremove.pm Tue Jan 16 23:22:19 
2007
@@ -32,10 +32,10 @@
 
     {
     my ($class, $args) = @_ ;
-    
+
     my $self = Embperl::Form::Control -> new($args) ;
     bless $self, $class ;
-    
+
     $self -> {removesource} ||= 0 ;
     $self -> form -> add_code_at_bottom("addremoveInitOptions 
(document.getElementById('$self->{src}'), 
document.getElementById('$self->{dest}'), 
document.getElementById('$self->{name}'), $self->{removesource})") ;
     return $self ;
@@ -46,27 +46,29 @@
 1 ;
 
 __EMBPERL__
-    
+
 [# ---------------------------------------------------------------------------
 #
 #   show - output the control
 #]
 
-[$ sub show ($self) 
+[$ sub show ($self)
 
     my $span = $self->{width_percent}  ;
     my $name = $self->{name} ;
-$]    
+    my $nsprefix = $self -> form -> {jsnamespace} ;
+
+$]
 
 <td class="cBase cControlBox" colspan="[+ $span +]">
 <input type="hidden" id="[+ $name +]" name="[+ $name +]">
-<img src="toleft.gif" title="Hinzufügen" onClick="addremoveAddOption 
(document.getElementById('[+ $self->{src} +]'), document.getElementById('[+ 
$self->{dest} +]'), document.getElementById('[+ $name +]'), [+ 
$self->{removesource} +])">
+<img src="toleft.gif" title="Hinzufügen" onClick="[+ $nsprefix 
+]addremoveAddOption (document, document.getElementById('[+ $self->{src} +]'), 
document.getElementById('[+ $self->{dest} +]'), document.getElementById('[+ 
$name +]'), [+ $self->{removesource} +])">
 <br>
-<img src="toright.gif" title="Entfernen" onClick="addremoveRemoveOption 
(document.getElementById('[+ $self->{src} +]'), document.getElementById('[+ 
$self->{dest} +]'), document.getElementById('[+ $name +]'), [+ 
$self->{removesource} +])">
+<img src="toright.gif" title="Entfernen" onClick="[+ $nsprefix 
+]addremoveRemoveOption (document, document.getElementById('[+ $self->{src} 
+]'), document.getElementById('[+ $self->{dest} +]'), 
document.getElementById('[+ $name +]'), [+ $self->{removesource} +])">
 
 [#
-    print "<input class="cStandardButton" type=button value="Hinzufügen" 
onClick="addremoveAddOption (this.form.elements['$self->{src}'], 
this.form.elements['$self->{dest}'], this.form.elements['$self->{name}'], 
$self->{removesource})">\n" ;
-    print "<input class="cStandardButton" type=button value="Entfernen" 
onClick="addremoveRemoveOption (this.form.elements['$self->{src}'], 
this.form.elements['$self->{dest}'], this.form.elements['$self->{name}'], 
$self->{removesource})">\n" ;
+    print "<input class="cStandardButton" type=button value="Hinzufügen" 
onClick="[+ $nsprefix +]addremoveAddOption (document, 
this.form.elements['$self->{src}'], this.form.elements['$self->{dest}'], 
this.form.elements['$self->{name}'], $self->{removesource})">\n" ;
+    print "<input class="cStandardButton" type=button value="Entfernen" 
onClick="[+ $nsprefix +]addremoveRemoveOption (document, 
this.form.elements['$self->{src}'], this.form.elements['$self->{dest}'], 
this.form.elements['$self->{name}'], $self->{removesource})">\n" ;
 #]
 </td>
 [$endsub$]
@@ -82,12 +84,12 @@
 
 =head1 SYNOPSIS
 
-  { 
+  {
   type         => 'addremove',
   name         => 'foo',
-  src          => 'src_select_name', 
-  dest         => 'dest_select_name', 
-  removesource => 1, 
+  src          => 'src_select_name',
+  dest         => 'dest_select_name',
+  removesource => 1,
   }
 
 =head1 DESCRIPTION
@@ -115,7 +117,7 @@
 
 =head3 removesource
 
-If set to a true value the items will be removed from the source select box 
and 
+If set to a true value the items will be removed from the source select box and
 move to the destionation box. If set to false, the items will be copied.
 
 =head1 Author

Modified: perl/embperl/trunk/Embperl/Form/Control/checkbox.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/checkbox.pm?view=diff&rev=496949&r1=496948&r2=496949
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/checkbox.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/checkbox.pm Tue Jan 16 23:22:19 2007
@@ -44,21 +44,22 @@
 1 ;
 
 __EMBPERL__
-    
+
 [# ---------------------------------------------------------------------------
 #
 #   show_control - output the control
 #]
 
-[$ sub show_control ($self) 
+[$ sub show_control ($self)
 
     my $name     = $self -> {name} ;
     my $val      = $self -> {value} || 1 ;
+    my $nsprefix = $self -> form -> {jsnamespace} ;
 
     push @{$self -> form -> {fields2empty}}, $name ;
-$]    
+$]
 <input type="checkbox"   class="cBase cControlCheckbox"  name="[+ $name +]" 
value="[+ $val +]"
-[$if ($self -> {sublines} || $self -> {subobjects}) $] 
OnClick="show_checked(this)" [$endif$]
+[$if ($self -> {sublines} || $self -> {subobjects}) $] OnClick="[+ $nsprefix 
+]show_checked(document, this)" [$endif$]
 >
 [$endsub$]
 
@@ -73,9 +74,9 @@
 
 =head1 SYNOPSIS
 
-  { 
+  {
   type  => 'checkbox',
-  text  => 'blabla', 
+  text  => 'blabla',
   name  => 'foo',
   value => 'bar'
   }
@@ -95,7 +96,7 @@
 
 Specifies the name of the checkbox control
 
-=head3 text 
+=head3 text
 
 Will be used as label for the checkbox control
 

Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?view=diff&rev=496949&r1=496948&r2=496949
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Tue Jan 16 23:22:19 2007
@@ -33,10 +33,10 @@
 
     {
     my ($class, $args) = @_ ;
-    
+
     my $self = Embperl::Form::ControlMultValue -> new($args) ;
     bless $self, $class ;
-    
+
     $self -> {width} = 1 ;
     return $self ;
     }
@@ -44,48 +44,48 @@
 
 # ---------------------------------------------------------------------------
 #
-#   get_on_show_code 
+#   get_on_show_code
 #
 #   retuns js code that should be excuted when form becomes visible
 #
 
-sub get_on_show_code 
+sub get_on_show_code
     {
     my ($self) = @_ ;
     return "switch_grid('$self->{id}')";
     }
 
 # ---------------------------------------------------------------------------
-    
+
 sub get_object
     {
     my $self = shift;
     return 'grid-entry';
-    }    
+    }
 
-# 
--------------------------------------------------------------------------------------
 ----    
+# 
--------------------------------------------------------------------------------------
 ----
 
 sub gridname
     {
     return 'cGridSimple';
-    }   
-    
-# 
------------------------------------------------------------------------------------------
    
+    }
+
+# 
------------------------------------------------------------------------------------------
 
 sub prepare_fdat
     {
     my $self = shift;
-    
+
     my %list;
     my $gridname = $self->gridname;
-    my $ldap = $epreq->{ldap}; 
- 
+    my $ldap = $epreq->{ldap};
+
 
     foreach my $entry (keys %fdat)
         {
 
         next if ($entry !~ /_($gridname)_/);
- 
+
         if( $entry =~ /^_grid_[^_]+_([^_]+)_(\d+)/ )
             {
 
@@ -95,19 +95,19 @@
             $list{$index}->{$name} = $value;
             delete $fdat{$entry};
             }
-        }    
-    
+        }
+
     my @entries;
-            
+
     foreach my $index (keys %list)
         {
         my $entry = $list{$index};
         $entry->{address}   =~ s/^--(.*)--$//;
-        $entry->{param}     =~ s/^--(.*)--$//;        
+        $entry->{param}     =~ s/^--(.*)--$//;
         my $attr = 
$ldap->joinAttrValue([$index,$entry->{active},$entry->{param}]);
         push @entries,$attr;
-        } 
- 
+        }
+
     $fdat{$self->get_object} = join ("\t",@entries);
     }
 
@@ -118,39 +118,39 @@
 sub get_data
     {
     my $self = shift;
-    my $ldap = $epreq->{ldap}; 
-    my @data;        
+    my $ldap = $epreq->{ldap};
+    my @data;
     my @create =
                 (
                     {
-                    param => '-- Bitte Daten eintragen --',                    
                  
+                    param => '-- Bitte Daten eintragen --',
                     active  => 0,
                     }
                 ) ;
-                                            
+
     my @entries     = split("\t",$fdat{$self->get_object});
-                
+
     foreach my $entry (@entries)
         {
-        my ($index,$active,$param) = $ldap->splitAttrValue($entry);     
+        my ($index,$active,$param) = $ldap->splitAttrValue($entry);
         my $field           = {};
         $param              ||= $self->empty_line;
         $field->{active}    = $active;
-        $field->{param}     = $param;       
-         
+        $field->{param}     = $param;
+
         push @data,$field;
-        }        
-                         
-    @data = @create if (! @data);    
-    
+        }
+
+    @data = @create if (! @data);
+
     return ([EMAIL PROTECTED], [EMAIL PROTECTED]) ;
     }
-    
+
 sub init
     {
-    my ($self) = @_;            
-    $self -> {gridname} = $self -> gridname ;  
-    ($self -> {data}, $self -> {create}) = $self -> get_data ;    
+    my ($self) = @_;
+    $self -> {gridname} = $self -> gridname ;
+    ($self -> {data}, $self -> {create}) = $self -> get_data ;
     }
 
 sub trclass { 'cGridData' }
@@ -205,20 +205,20 @@
 #print STDERR Data::Dumper::Dumper($attr2write);
     return $attr2write;
     }
-    
+
 
 
 
 1 ;
 
 __EMBPERL__
-    
+
 [# ---------------------------------------------------------------------------
 #
 #   show - output the control
 #]
 
-[$ sub show ($self) 
+[$ sub show ($self)
 
 my $span = ($self->{width_percent})  ;
 $]
@@ -255,7 +255,7 @@
     my ($self,$hidden) = @_;
 
     if($hidden)
-        { 
+        {
         $grid_data = $self -> {create};
         $trclass   = $self ->  hiddentrclass ;
         }
@@ -282,7 +282,7 @@
                 $epreq -> $method ($field);
                 }
 
-            -] 
+            -]
 
          [$if($field->{'type'} eq 'checkbox')$]
             <TD id="[+$domid+]" class="cGrid[+ 
ucfirst(lc($field->{'type'}))+]"><input name="[+$domid+]" type="checkbox" 
value="1" [$if($val)$]checked[$endif$]></TD>
@@ -311,12 +311,12 @@
         </TR>
         [- $id++;-]
            [$endforeach$]
-      [-$self->{currentid} = $id;-]       
+      [-$self->{currentid} = $id;-]
 [$ endsub $]
 [# #--- draw_grid_table ----# #]
 
 [# 
################################################################################################
-    draw_grid_control    Erzeugt die Buttons zur Grid Steuerung 
+    draw_grid_control    Erzeugt die Buttons zur Grid Steuerung
    
################################################################################################
 #]
 [$ sub draw_grid_control $]
   [-
@@ -325,16 +325,16 @@
   <table class="control" align="center" cellpadding=0 cellspacing=0 border=0 
rules="none" >
    <TR class="control">
      <TD colspan="[+self->{'control_colspan'}+]" align="center">
-      <input class="cStandardButton" type="button" id="cmdAdd" name="-add" 
value="Hinzuf&uuml;gen" onclick="appendRow('[+$self->{'appendline_for_js'}+]')" 
title="Hinzuf&uuml;gen">
-      <input class="cStandardButton" type="button" id="cmdDelete"  
name="-delete" value="L&ouml;schen" 
onclick="delete_from_form('[+$self->{'appendline_for_js'}+]')" 
title="L&ouml;schen">
+      <input class="cStandardButton" type="button" id="cmdAdd" name="-add" 
value="Hinzuf&uuml;gen" onclick="[+ $nsprefix 
+]appendRow('[+$self->{'appendline_for_js'}+]')" title="Hinzuf&uuml;gen">
+      <input class="cStandardButton" type="button" id="cmdDelete"  
name="-delete" value="L&ouml;schen" onclick="[+ $nsprefix 
+]delete_from_form('[+$self->{'appendline_for_js'}+]')" title="L&ouml;schen">
      </TD>
     </TR>
-   </table> 
+   </table>
 [$ endsub $]
 [# #--- draw_grid_control ----# #]
 
 [# 
################################################################################################
-    draw_grid_header    Erzeugt den Tabellenkopf  
+    draw_grid_header    Erzeugt den Tabellenkopf
    
################################################################################################
 #]
 [$ sub draw_grid_header $]
   [-
@@ -346,7 +346,7 @@
             [$if ($gridfields->[$i]->{text} )$]<TD class="cGridHeader" [$ if 
($gridfields->[$i]->{sorted})$]axis="sorted"[$endif$] [$if($width = 
$gridfields->[$i]->{width})$]width="[+$width+]"[$endif$]>[+$gridfields->[$i]->{text}+]</TD>[$endif$]
          [* } *]
          </TR>
-[$ endsub $] 
+[$ endsub $]
 [# #--- draw_grid_header ----# #]
 
 [# 
-----------------------------------------------------------------------------
@@ -355,23 +355,23 @@
 #]
 
 [$ sub show_grid_title $]
-[- 
+[-
 ($self) = @_;
 -]
 <table class="cBase cGridTitle">
   <tr class="cTableRow">
-    <td class="cBase cGridLabelBox">[+ $self->{text} +]</td> 
+    <td class="cBase cGridLabelBox">[+ $self->{text} +]</td>
     <td class="cBase cGridControlBox">
-        <img src="button_neu.gif" id="cmdAdd" name="-add" title="Zeile 
Hinzuf&uuml;gen" onclick="appendRow('[+$self->{'appendline_for_js'}+]')">
-        <img src="button_loeschen.gif"  id="cmdDelete"  name="-delete" 
title="Markierte Zeile L&ouml;schen" 
onclick="delete_from_form('[+$self->{'appendline_for_js'}+]')">
-    </td> 
+        <img src="button_neu.gif" id="cmdAdd" name="-add" title="Zeile 
Hinzuf&uuml;gen" onclick="[+ $nsprefix 
+]appendRow('[+$self->{'appendline_for_js'}+]')">
+        <img src="button_loeschen.gif"  id="cmdDelete"  name="-delete" 
title="Markierte Zeile L&ouml;schen" onclick="[+ $nsprefix 
+]delete_from_form('[+$self->{'appendline_for_js'}+]')">
+    </td>
   </tr>
-</table>    
+</table>
 [$ endsub $]
 
 [# 
################################################################################################
-    draw_table_id   Zeigt die DOM Id der Tabelle an  
-   
################################################################################################
 #]   
+    draw_table_id   Zeigt die DOM Id der Tabelle an
+   
################################################################################################
 #]
 
 [$ sub draw_table_id $][- ($self) = @_;-][+$self -> {id} +][$ endsub $]
 [# #--- draw_title ----# #]
@@ -379,34 +379,29 @@
 
 
 [# 
################################################################################################
-    show    Erzeugt eine dynamische Tabelle 
-        
+    show    Erzeugt eine dynamische Tabelle
+
     in      objektspezifische Grid-Daten Struktur :
-    
+
             gridfields      =  Felder der Grid-Tabelle (angelehnt an das 
fields Format)
             griddata        =  Datensatz mit den Werten der Tabelle
             initdata        =  Datensatz mit den initialen Werten der Tabelle
             names2display   =  (optional) Arrayref mit den Titeln des 
Tabellenkopfes
             title           =  Titel der Grid-Tabelle
             trclass         =  css Klasse der Tabellenzeilen
-            hiddentrclass   =  (optional) css Klasse für versteckte 
Tabellenfelder  
+            hiddentrclass   =  (optional) css Klasse für versteckte 
Tabellenfelder
    
################################################################################################
 #]
-   
+
 [$ sub showgrid $]
 [-
 ($self) = @_;
 
 $self -> init() ;
-$epreq -> {'onSubmitLdapData'} = $self -> onSubmit ; 
+$epreq -> {'onSubmitLdapData'} = $self -> onSubmit ;
+$nsprefix = $self -> form -> {jsnamespace} ;
 
 -]
 
-[#
-<link rel="stylesheet" type="text/css" href="/grid.css">
-<link rel="stylesheet" type="text/css" href="/base.css">
-<SCRIPT src="/js/TableCtrl.js"></SCRIPT>
-#]
-
 [- $self->show_grid_title; -]
 <table class="cBase cGridTable" id="[- $self->draw_table_id; -]" name="[- 
$self->draw_table_id; -]">
 [- $self->draw_grid_header; -]
@@ -427,7 +422,7 @@
 </div>
 
 <SCRIPT language="javascript">
-init('[- $self->draw_table_id; -]');
+[+ $nsprefix +]init('[- $self->draw_table_id; -]');
 </SCRIPT>
 
 [$endsub$]

Modified: perl/embperl/trunk/Embperl/Form/Control/radio.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/radio.pm?view=diff&rev=496949&r1=496948&r2=496949
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/radio.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/radio.pm Tue Jan 16 23:22:19 2007
@@ -38,20 +38,20 @@
     my $set      = !defined ($fdat{$name})?1:0 ;
     my $filter   = $self -> {filter} ;
 
-    my $val ;     
+    my $val ;
     my $i = 0 ;
 
     if ($set)
         {
-        foreach $val ((@$addtop, @$values, @$addbottom)) 
+        foreach $val ((@$addtop, @$values, @$addbottom))
             {
             if (!defined ($filter) || (ref $val?$val -> [0]:$val =~ 
/$filter/i))
                 {
-                $fdat{$name} = ref $val?$val -> [0]:$val  ; 
+                $fdat{$name} = ref $val?$val -> [0]:$val  ;
                 last ;
                 }
             }
-        }            
+        }
 
     $self -> show_control ($req, "^\Q$fdat{$name}\\E\$", $values, $options) ;
     }
@@ -74,6 +74,7 @@
     my $addbottom= $self -> {addbottom} || [] ;
     my $max      = @$values ;
     my $set      = !defined ($fdat{$name})?1:0 ;
+    my $nsprefix = $self -> form -> {jsnamespace} ;
 
     my $val ;
     my $i = 0 ;
@@ -106,7 +107,7 @@
     [$if !defined ($filter) || ($val =~ /$filter/i) $]
     [- $fdat{$name} = $val, $set = 0 if ($set) ; -]
     [+ do { local $escmode = 0 ; $tr }+]<td><input type="radio" name="[+ $name 
+]" value="[+ $val +]"
-    [$if ($self -> {sublines} || $self -> {subobjects}) $] 
OnClick="show_radio_checked(this,[+ $i +],[+ $max +])" [$endif$]
+    [$if ($self -> {sublines} || $self -> {subobjects}) $] OnClick="[+ 
$nsprefix +]show_radio_checked(document, this,[+ $i +],[+ $max +])" [$endif$]
     ></td><td>[+ $options ->[$i] || $val +]</td>[+ do { local $escmode = 0 ; 
$trend }+]
     [$endif$]
     [* $i++ ; *]

Modified: perl/embperl/trunk/Embperl/Form/Control/select.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/select.pm?view=diff&rev=496949&r1=496948&r2=496949
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/select.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/select.pm Tue Jan 16 23:22:19 2007
@@ -53,11 +53,12 @@
     $filter      ||= $self -> {filter} ;
     my $addtop   = $self -> {addtop} || [] ;
     my $addbottom= $self -> {addbottom} || [] ;
+    my $nsprefix = $self -> form -> {jsnamespace} ;
     my $val ;
     my $i = 0 ;
 $]
 <select  class="cBase cControl" name="[+ $name +]" id="[+ $name +]"
-[$if ($self -> {sublines} || $self -> {subobjects}) $] 
OnChange="show_selected(this)" [$endif$]
+[$if ($self -> {sublines} || $self -> {subobjects}) $] OnChange="[+ $nsprefix 
+]show_selected(document, this)" [$endif$]
 [$if ($self -> {rows}) $] size="[+ $self->{rows} +]" [$endif$]
 >
 [$ foreach $val (@$addtop) $]

Modified: perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm?view=diff&rev=496949&r1=496948&r2=496949
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/selectdyn.pm Tue Jan 16 23:22:19 
2007
@@ -50,56 +50,63 @@
 
     my ($values, $options) = $self -> get_values ($req) ;
     my $name     = $self -> {name} ;
-    $filter      ||= $self -> {filter} ;
-    my $addtop   = $self -> {addtop} || [] ;
-    my $addbottom= $self -> {addbottom} || [] ;
-    my $val ;
-    my $i = 0 ;
+    #$filter      ||= $self -> {filter} ;
+    #my $addtop   = $self -> {addtop} || [] ;
+    #my $addbottom= $self -> {addbottom} || [] ;
+    my $nsprefix = $self -> form -> {jsnamespace} ;
     my $jsname = $name ;
     $jsname =~ s/[^a-zA-Z0-9]/_/g ;
     $self -> {size} ||= 75 / ($self -> {width} || 2) ;
     my $initval ;
+    my $fdatval = $fdat{$name} ;
+    my $i = 0 ;
+    foreach (@$values)
+        {
+        if ($_ eq $fdatval)
+            {
+            $initval = $options->[$i] ;
+            last ;
+            }
+        $i++ ;
+        }
+
 $]
-<script type="text/javascript" src="/js/prototype.js"></script>
-<script type="text/javascript" src="/js/effects.js"></script>
-<script type="text/javascript" src="/js/controls.js"></script>
 
 <div class="cAutoCompDiv">
+
+[# --- Popup --- #]
+<div class="cPopupMenu" id="_menu_[+ $jsname +]"
+style="display:none; position: absolute; top: 16px; z-index: 99; margin: 0px; 
padding: 0px;
+border: 2px grey outset; background: white; text-align: center;"
+>
+
+<a href="#" onClick="location.href='ldapTreeData.epl?-id=' + 
encodeURIComponent([+ $jsname +]Popup.idval)">Anzeigen</a>&nbsp;
+<a href="#" onClick="alert('ldapTreeData.epl?-id=' + [+ $jsname 
+]Popup.idval)">Durchsuchen</a>&nbsp;
+<a href="ldapTreeData?-id=">Neu</a>
+
+<div class="cPopupContainer" id="_info_[+ $jsname +]" style="margin: 0px; 
padding: 0px;">
+</div>
+</div>
+
+[# --- Autocomplete --- #]
 <div class="cAutoCompContainer" id="_cont_[+ $jsname +]" style="display:none">
-[$ foreach $val (@$values) $]
-    <li id='[+ $val +]'>[+ $options->[$i] || $val +]</li>
-    [*
-    $initval = $options->[$i] if ($val eq $fdat{$name}) ;
-    $i++ ;
-    *]
-[$endforeach$]
 </div>
+
+[# --- input --- #]
 <input class="cBase cControl cAutoCompInput" id="_inp_[+ $jsname +]" 
type="text"
 [$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
 value="[+ $initval +]"
 >
-<div  class="cAutoCompArrow" onclick="[+ $jsname 
+]onClickArrow()">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
+<div  class="cAutoCompArrow" onclick="[+ $jsname +]Popup.showPopup()"
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
 <input type="hidden" name="[+ $name +]" id="[+ $name +]" >
 </div>
 
-       <script type="text/javascript">
-        function [+ $jsname +]onClickArrow(id,obj)
-            {
-            i = document.getElementById ('_inp_[+ $jsname +]') ;
-            if (i.value == '')
-               i.value = '*' ;
-            c = document.getElementById ('_cont_[+ $jsname +]') ;
-            if (c.style.display == 'none')
-               {
-                [+ $jsname +]AutoComp.render();
-               }
-            else
-                [+ $jsname +]AutoComp.hide();
-            i.focus() ;
-            }
+[# --- interface --- #]
+<script type="text/javascript">
+
          function [+ $jsname +]savevalue(inputelem, lielem) {
             f = document.getElementById ('[+ $name +]') ;
-            //alert (inputelem.value + ' , ' + lielem.value) ;
             if (!lielem || inputelem.value == '' || lielem.value == '')
                {
                f.value = '' ;
@@ -107,17 +114,18 @@
                }
             else
                f.value = lielem.id ;
-            //alert (lielem.value + ' = ' + lielem.id) ;
             }
 
-        [+ $jsname +]AutoComp = new Ajax.Autocompleter('_inp_[+ $jsname 
+]','_cont_[+ $jsname +]',
+        [+ $jsname +]Popup = new [+ $nsprefix +]Popup 
(document.getElementById('_menu_[+ $jsname +]'),
+                                        document.getElementById('[+ $name +]'),
+                                        document.getElementById('_info_[+ 
$jsname +]'),
+                                        document.getElementById('_inp_[+ 
$jsname +]')) ;
+
+        [+ $jsname +]AutoComp = new [+ $nsprefix 
+]Ajax.Autocompleter(document.getElementById('_inp_[+ $jsname 
+]'),document.getElementById('_cont_[+ $jsname +]'),
             '/ebos/datasrc.exml', {paramName: "query", parameters: "datasrc=[+ 
$self -> {datasrc} +]", frequency: 0.3, afterUpdateElement: [+ $jsname 
+]savevalue}) ;
         [+ $jsname +]AutoComp.updateChoices ;
 
-       </script>
-
-
-
+</script>
 
 [$endsub$]
 

Modified: perl/embperl/trunk/Embperl/Form/Control/tabs.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/tabs.pm?view=diff&rev=496949&r1=496948&r2=496949
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/tabs.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/tabs.pm Tue Jan 16 23:22:19 2007
@@ -100,6 +100,7 @@
     my $name     = $self -> {name} ;
     my $dataval  = $fdat{$name} || $values -> [0] ;
     my $activeid = $self -> get_active_id ;
+    my $nsprefix = $self -> form -> {jsnamespace} ;
 
     my $val ;
     my $i = 0 ;
@@ -124,7 +125,7 @@
         my $js = join (';', @switch_code) ;
         *]
         <td class="cBase [+ $cellclass +]"><div class="cBase [+ $divclass +]" 
id="__tabs_[+ $id +]">
-        <a href="#" onClick="tab_selected('[+ $id +]','[+ $name +]'); [+ do { 
local $escmode = 0 ; $js } +]" style="color:black; text-decoration: none;">[+ 
$options ->[$i] || $val +]</a></div></td>
+        <a href="#" onClick="[+ $nsprefix +]tab_selected(document, '[+ $id 
+]','[+ $name +]'); [+ do { local $escmode = 0 ; $js } +]" style="color:black; 
text-decoration: none;">[+ $options ->[$i] || $val +]</a></div></td>
         [* $i++ *]
     [$endforeach $]
     <td class="cBase cTabCellBlank">&nbsp;</td>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to