You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2007/01/17 08:22:20 UTC

svn commit: r496949 - in /perl/embperl/trunk/Embperl: Form.pm Form/Control/addremove.pm Form/Control/checkbox.pm Form/Control/grid.pm Form/Control/radio.pm Form/Control/select.pm Form/Control/selectdyn.pm Form/Control/tabs.pm

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 (\@data, \@create) ;
     }
-    
+
 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: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org