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: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org