Author: richter
Date: Wed Dec 28 19:46:34 2011
New Revision: 1225319
URL: http://svn.apache.org/viewvc?rev=1225319&view=rev
Log:
Allow Multiple Forms in one html document
Modified:
perl/embperl/trunk/Embperl/Form.pm
perl/embperl/trunk/Embperl/Form/Control/datetime.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?rev=1225319&r1=1225318&r2=1225319&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form.pm (original)
+++ perl/embperl/trunk/Embperl/Form.pm Wed Dec 28 19:46:34 2011
@@ -33,6 +33,7 @@ use Storable ;
use MIME::Base64 ;
our %forms ;
+our $form_cnt = 1 ;
our %CLEANUP = ('forms' => 0) ;
use vars qw{$epreq} ;
@@ -79,7 +80,7 @@ sub sub_new
if ($toplevel)
{
- $self -> {fields2empty} = [] ;
+ $self -> {fields2empty} = [] ;
$self -> {init_data} = [] ;
$self -> {prepare_fdat} = [] ;
}
@@ -477,6 +478,15 @@ sub show_controls
{
my ($self, $req, $activeid) = @_ ;
+ if ($self -> {toplevel})
+ {
+ $self -> {unique_id} = '_' . $$ . '_' . $form_cnt++ ;
+ }
+ else
+ {
+ $self -> {unique_id} = $self -> parent_form -> {unique_id} ;
+ }
+
my $lines = $self -> {layout} ;
my %n ;
my $activesubid ;
@@ -530,9 +540,13 @@ sub show
{
my ($self, $req, $activeid) = @_ ;
- $self -> init_data ($req) if ($self -> {toplevel});
+ if ($self -> {toplevel})
+ {
+ $self -> init_data ($req) ;
+ $self -> show_form_begin ($req) ;
+ }
+
#$self -> validate ($req) if ($self -> {toplevel});
- $self -> show_form_begin ($req) if ($self -> {toplevel});
$self -> show_controls ($req, $activeid) ;
$self -> show_form_end ($req) if ($self -> {toplevel});
}
@@ -892,7 +906,7 @@ onSubmit="v=doValidate; doValidate=1; re
my $parent = $self -> parent_form ;
my $class = $self -> {options}{classdiv} || ($parent ->
{noframe}?'ef-tabs-border-u':'ef-tabs-border') ;
$]
-<div id="[+ $self->{id} +]"
+<div id="[+ $self -> {unique_id} +]_[+ $self->{id} +]"
[$if ($activeid && $self->{id} ne $activeid) $] style="display: none" [$endif$]
>
[$if (!$self -> {noframe}) $]<table class="[+ $class +]"><tr><td
class="ef-tabs-content-cell"> [$endif$]
Modified: perl/embperl/trunk/Embperl/Form/Control/datetime.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/datetime.pm?rev=1225319&r1=1225318&r2=1225319&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/datetime.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/datetime.pm Wed Dec 28 19:46:34 2011
@@ -162,7 +162,7 @@ my $class = $self -> {class} ||= '' ;
my $nsprefix = $self -> form -> {jsnamespace} ;
$]
-<input type="text" [+ do { local $escmode = 0 ; $self ->
get_std_control_attr() } +]
+<input type="text" name="[+ $self -> {force_name} || $self -> {name} +]" [+
do { local $escmode = 0 ; $self -> get_std_control_attr() } +]
[$if $self -> {size} $]size="[+ $self->{size} +]"[$endif$]
[$if $self -> {maxlength} $]maxlength="[+ $self->{maxlength} +]"[$endif$]
>
Modified: perl/embperl/trunk/Embperl/Form/Control/tabs.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/tabs.pm?rev=1225319&r1=1225318&r2=1225319&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/tabs.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/tabs.pm Wed Dec 28 19:46:34 2011
@@ -105,7 +105,10 @@ __EMBPERL__
my $name = $self -> {name} ;
my $dataval = $fdat{$name} || $values -> [0] ;
my $activeid = $self -> get_active_id ($req) ;
- my $nsprefix = $self -> form -> {jsnamespace} ;
+ my $form = $self -> form ;
+ my $nsprefix = $form -> {jsnamespace} ;
+ my $uid = $form -> {unique_id} ;
+ my $fullname = $uid . '_' . $name ;
my $tabs_per_line = $self -> {'tabs_per_line'} || 99;
$tabs_per_line = [$tabs_per_line, $tabs_per_line, $tabs_per_line,
$tabs_per_line]
if (!ref $tabs_per_line) ;
@@ -126,12 +129,11 @@ $]
*]
[$ while ($i < @$values) $]
[*
- $val = $values -> [$i] ;
+ $val = $values -> [$i] ;
my $id = $self -> {subids}[$i] ;
my $cellclass = $id eq $activeid?'ef-tabs-cell-on':'ef-tabs-cell-off' ;
my $divclass = $id eq $activeid?'ef-tabs-div-on':'ef-tabs-div-off' ;
- my $form = $self -> form ;
my @switch_code ;
foreach my $sub (@{$form -> {controls}})
@@ -140,11 +142,12 @@ $]
push @switch_code, $code if ($code) ;
}
my $js = join (';', @switch_code) ;
+ my $fullid = $uid . '_' . $id ;
*]
<td class="[+ $cellclass +]"><div class="[+ $divclass +]"
[$ if $i - $start_i == 0 $]style="border-left: black 1px solid"
[$endif$]
- id="__tabs_[+ $id +]">
- <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>
+ id="__tabs_[+ $fullid +]">
+ <a href="#" onClick="[+ $nsprefix +]tab_selected(document, '[+ $fullid
+]','[+ $fullname +]'); [+ do { local $escmode = 0 ; $js } +]"
style="color:black; text-decoration: none;">[+ $options ->[$i] || $val
+]</a></div></td>
[* $i++ ;
if ($i - $start_i >= $tabs && @$values > $i)
{
@@ -157,7 +160,7 @@ $]
[$if ($i == @$values) $]<td
class="ef-tabs-cell-blank"> </td>[$endif$]
</tr></table>
[$endwhile$]
- <input type="hidden" name="[+ $name +]" id="[+ $name +]" value="[+
$activeid +]">
+ <input type="hidden" name="[+ $name +]" id="[+ $fullname +]" value="[+
$uid +]_[+ $activeid +]">
</td>
[$endsub$]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]