Mailing List Archive

svn commit: r1376392 - in /perl/embperl/trunk/Embperl/Form/Control: dynctrl.pm grid.pm
Author: richter
Date: Thu Aug 23 07:02:16 2012
New Revision: 1376392

URL: http://svn.apache.org/viewvc?rev=1376392&view=rev
Log:
Fix problems with nested controls

Modified:
perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm
perl/embperl/trunk/Embperl/Form/Control/grid.pm

Modified: perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm?rev=1376392&r1=1376391&r2=1376392&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm Thu Aug 23 07:02:16 2012
@@ -32,7 +32,7 @@ sub create_ctrl

my $fdat = ($req -> {form} && keys (%{$req -> {form}}) > 0)?$req -> {form}:\%Embperl::fdat ;
my $id = $self -> {id} . $self -> {name} ;
- #::dbg('create_control id = ', $id, ' name = ', $self -> {name}, ' value = ', $fdat -> {$self -> {name}}, $req -> {form}, \%Embperl::fdat, $fdat) ;
+ #::dbg('create_control id = ', $id, ' name = ', $self -> {name}, ' value = ', $fdat -> {$self -> {name}}) ; #, $req -> {form}, \%Embperl::fdat, $fdat) ;
return $req -> {"dynctrl_$id"} if ($req -> {"dynctrl_$id"}) ;

my $ctrl ;
@@ -62,8 +62,11 @@ sub create_ctrl
if ($attr ne 'ctrlattr' &&
$attr ne 'type' &&
!exists ($ctrl -> {$attr})) ;
- }
-
+ }
+ foreach my $attr (qw{name fullid id state})
+ {
+ $ctrl -> {$attr} = $self -> {$attr} ;
+ }
$ctrl -> {text} = $ctrl -> {textprefix} . $ctrl -> {text} if ($ctrl -> {textprefix}) ;
my $form = $self -> form ;
my $ctrlform = [$ctrl] ;

Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1376392&r1=1376391&r2=1376392&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Thu Aug 23 07:02:16 2012
@@ -152,6 +152,7 @@ sub init_data
if ($field -> can ('init_data'))
{
local $field->{name} = "__${name}_${j}_$i" ;
+ local $field -> {fullid} = "$self->{fullid}_${j}_$i" ;
$field -> init_data ($req, $self) ;
}
$j++ ;
@@ -211,6 +212,7 @@ sub prepare_fdat
if ((ref ($field) =~ /::/) && $field -> can ('prepare_fdat'))
{
local $field->{name} = "__${name}_${j}_$i" ;
+ local $field -> {fullid} = "$self->{fullid}_${j}_$i" ;
$field -> prepare_fdat ($req) ;
}
$ok++ ;
@@ -428,6 +430,7 @@ $]
<td class="cGridFooter cGridCellReadonly">[.-
local $field -> {name} = "__${name}_${j}_$i" ;
local $field -> {state} = $self -> {state} ;
+ local $field -> {fullid} = "$self->{fullid}_${j}_$i" ;
$field -> show_control_readonly ($req) if (!$field -> {nofooter}) ;
$j++ ;
-]</td>
@@ -458,6 +461,7 @@ $]
[$if $field -> is_hidden $][.-
local $field -> {name} = "__${name}_${j}_$i" ;
local $field -> {state} = $self -> {state} ;
+ local $field -> {fullid} = "${id}_${j}_$i" ;
$field -> show_control ($req) ;
$j++ ;
-][$else$]
@@ -465,6 +469,7 @@ $]
<td class="[+ $ro?'cGridCellReadonly':'cGridCell' +]" style="[$if($width = $field->{width})$]width: [+$width+];[$endif$]">[$if $n++ == 0$]<input type="hidden" name="[+ "__${name}_#row#_$i" +]" value="[+ $i +]">[$endif$][.-
local $field -> {name} = "__${name}_${j}_$i" ;
local $field -> {state} = $self -> {state} ;
+ local $field -> {fullid} = "${id}_${j}_$i" ;
if ($ro)
{
$field -> show_control_readonly ($req)
@@ -486,6 +491,7 @@ $]
<td colspan="[+ scalar(@$fields) +]" class="[+ $ro?'cGridCellReadonly':'cGridCell' +]">[$if $n++ == 0$]<input type="hidden" name="[+ "__${name}_#row#_$i" +]" value="[+ $i +]">[$endif$][-
local $line2 -> {name} = "__${name}_${j}_$i" ;
local $line2 -> {state} = $self -> {state} ;
+ local $field -> {fullid} = "${id}_${j}_$i" ;
if ($ro)
{
$line2 -> show_control_readonly ($req)



---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org