Author: richter Date: Sat Aug 18 13:36:39 2012 New Revision: 1374579 URL: http://svn.apache.org/viewvc?rev=1374579&view=rev Log: Allow grid in grid
Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1374579&r1=1374578&r2=1374579&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Sat Aug 18 13:36:39 2012 @@ -22,7 +22,7 @@ use base 'Embperl::Form::ControlMultValu use vars qw{%fdat $epreq} ; use Embperl::Inline ; -use Storable ; +use Data::Clone ; # --------------------------------------------------------------------------- # @@ -54,15 +54,15 @@ sub init my ($self) = @_ ; $self -> {header_bottom} = 10 if (!exists ($self -> {header_bottom})) ; - $self -> {width} = 1 ; + $self -> {width} = 1 if (!$self -> {width}) ; my $flat = $self -> {flatopt} ; my @flat = split /\s*;\s*/, $flat ; - my $fields = $self -> {fields} ; + # make sure we do not change another instance of this grid + my $fields = $self -> {fields} = clone ($self -> {fields}) ; if (@flat) { - my $dfields = Storable::dclone ($fields) ; - foreach (@$dfields) + foreach (@$fields) { my $name = $_ -> {name} ; for (my $i = 0 ; $i < @flat; $i+=3) @@ -70,8 +70,6 @@ sub init $_ -> {$flat[$i+1]} = $flat[$i+2] if ($name eq $flat[$i]); } } - $fields = $dfields ; - $self -> {fields} = $fields ; } my $form = $self -> form ; my $options = $form -> {options} ; @@ -404,7 +402,7 @@ $] <tr class="cGridHeader"> [$ foreach my $field (@$fields) $] [* next if ($field -> is_hidden ) ; *] - <td class="cGridHeader" [$if($width = $field->{width})$]width="[+$width+]"[$endif$] _colattr="[+ $field->{name} +]">[+ $self -> form -> convert_label ($self, $field->{name}, $field->{text}) +]</td> + <td class="cGridHeader" style="[$if($width = $field->{width})$]width: [+$width+];[$endif$] [$if($width = $field->{min_width})$]min-width: [+$width+];[$endif$]" _colattr="[+ $field->{name} +]">[+ $self -> form -> convert_label ($self, $field->{name}, $field->{text}) +]</td> [$ endforeach $] </tr> </thead> @@ -464,7 +462,7 @@ $] $j++ ; -][$else$] [- $ro = $gridro || $field -> is_readonly () ; -] - <td class="[+ $ro?'cGridCellReadonly':'cGridCell' +]" [$if $field->{width}$]style="width: [+ $field->{width} +]"[$endif$]>[$if $n++ == 0$]<input type="hidden" name="[+ "__${name}_#row#_$i" +]" value="[+ $i +]">[$endif$][- + <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} ; if ($ro) --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org