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ügen" onclick="appendRow('[+$self->{'appendline_for_js'}+]')" title="Hinzufügen">
- <input class="cStandardButton" type="button" id="cmdDelete" name="-delete" value="Löschen" onclick="delete_from_form('[+$self->{'appendline_for_js'}+]')" title="Löschen">
+ <input class="cStandardButton" type="button" id="cmdAdd" name="-add" value="Hinzufügen" onclick="[+ $nsprefix +]appendRow('[+$self->{'appendline_for_js'}+]')" title="Hinzufügen">
+ <input class="cStandardButton" type="button" id="cmdDelete" name="-delete" value="Löschen" onclick="[+ $nsprefix +]delete_from_form('[+$self->{'appendline_for_js'}+]')" title="Lö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ügen" onclick="appendRow('[+$self->{'appendline_for_js'}+]')">
- <img src="button_loeschen.gif" id="cmdDelete" name="-delete" title="Markierte Zeile Löschen" onclick="delete_from_form('[+$self->{'appendline_for_js'}+]')">
- </td>
+ <img src="button_neu.gif" id="cmdAdd" name="-add" title="Zeile Hinzufügen" onclick="[+ $nsprefix +]appendRow('[+$self->{'appendline_for_js'}+]')">
+ <img src="button_loeschen.gif" id="cmdDelete" name="-delete" title="Markierte Zeile Lö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>
+<a href="#" onClick="alert('ldapTreeData.epl?-id=' + [+ $jsname +]Popup.idval)">Durchsuchen</a>
+<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()"> </div>
+<div class="cAutoCompArrow" onclick="[+ $jsname +]Popup.showPopup()"
+> </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"> </td>
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org