Author: richter
Date: Wed Mar  7 08:20:45 2012
New Revision: 1297873

URL: http://svn.apache.org/viewvc?rev=1297873&view=rev
Log:
Allow hidden fields inside a grid control

Modified:
    perl/embperl/trunk/Embperl/Form/Control/grid.pm
    perl/embperl/trunk/Embperl/Form/Control/hidden.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=1297873&r1=1297872&r2=1297873&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Wed Mar  7 08:20:45 2012
@@ -108,9 +108,14 @@ sub init_data
     my $j ;
     my $col ;
     my $colval ;
+       my @rowclass ;
     foreach my $entry (@entries)
         {
         $data = ref $entry eq 'ARRAY'?$entry:[$ldap?ecos::LdapBase -> 
splitAttrValue($entry):$entry];
+               if (ref $self -> {rowclass} eq 'CODE')
+                       {
+                       $rowclass[$i] = &{$self -> {rowclass}}($data, $self) ;
+                       }
                my $co = $coloffset ;
         shift @$data while ($co-- > 0) ;
         $j = 0 ;
@@ -136,6 +141,7 @@ sub init_data
         $i++ ;
         }
     $fdat->{"__${name}_max"} = $i?$i:1;
+       $self -> {rowclasses} = \@rowclass ;
        }
 
 # 
------------------------------------------------------------------------------------------
@@ -320,6 +326,7 @@ $]
          <thead>
          <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>
          [$ endforeach $]
          </tr>
@@ -341,7 +348,8 @@ $]
 
  <tfoot>
          <tr class="cGridFooter">
-         [$ foreach my $field (@$fields) $]
+         [$ foreach my $field (@$fields)  $]
+                       [* next if ($field -> is_hidden ) ; *]
             <td class="cGridFooter cGridCellReadonly">[-
                 local $field -> {name} = "__${name}_${j}_$i" ;
                                $field -> show_control_readonly ($req) if 
(!$field -> {nofooter}) ; 
@@ -369,8 +377,13 @@ $]
     my $j = 0 ;
     $]
 
-    <tr class="cGridRow" id="[+ "$id-row-$i" +]">
+    <tr class="cGridRow [+ $self -> {rowclasses}[$i] +]" id="[+ "$id-row-$i" 
+]">
         [$foreach $field (@$fields)$]
+                   [$if $field -> is_hidden $][-
+                local $field -> {name} = "__${name}_${j}_$i" ;
+                               $field -> show_control ($req) ;
+                $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$][-
                 local $field -> {name} = "__${name}_${j}_$i" ;
@@ -384,6 +397,7 @@ $]
                     }
                 $j++ ;
                 -]</td>
+                       [$endif$]       
         [$endforeach$]     
     </tr>
     [$if $line2 $]

Modified: perl/embperl/trunk/Embperl/Form/Control/hidden.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/hidden.pm?rev=1297873&r1=1297872&r2=1297873&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/hidden.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/hidden.pm Wed Mar  7 08:20:45 2012
@@ -35,6 +35,8 @@ sub is_hidden
     return  1 ;
     }
 
+sub show_control { show (@_) ; }
+sub show_control_readonly { show (@_) ; }
 
 
 1 ;



---------------------------------------------------------------------
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