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

Reply via email to