You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2008/04/09 12:34:28 UTC

svn commit: r646260 - /perl/embperl/trunk/Embperl/Form/Control/grid.pm

Author: richter
Date: Wed Apr  9 03:34:23 2008
New Revision: 646260

URL: http://svn.apache.org/viewvc?rev=646260&view=rev
Log:
Up/down buttons fuer 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=646260&r1=646259&r2=646260&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Wed Apr  9 03:34:23 2008
@@ -78,6 +78,7 @@
     my @data;
     my $i = 0 ;
     my $j ;
+    my $col ;
     foreach my $entry (@entries)
         {
         @data = ecos::LdapBase -> splitAttrValue($entry);
@@ -85,12 +86,14 @@
         $j = 0 ;
         foreach my $field (@$fields)
             {
-            $fdat{"$name-$field->{name}-$i"} = $data[$j++] ;
+            $col = exists $field -> {col}?$field -> {col}:$j ;
+            $fdat{"$name-$field->{name}-$i"} = $data[$col] ;
             if ($field -> can ('init_data'))
                 {
                 local $field->{name} = "$name-$field->{name}-$i" ;
                 $field -> init_data ($req, $self)  ;
                 }
+            $j++ ;    
             }
         $i++ ;
         }
@@ -125,7 +128,11 @@
 
     my @rows;
     my $j ;
+    my $i ;
     my $val ;
+    my $col ;
+    my %orders ;
+    my $order ;
     for (my $i = 0; $i < $max; $i++)
         {
         foreach my $field (@$fields)
@@ -136,17 +143,24 @@
                 $field -> prepare_fdat ($req)  ;
                 }
             }
+        
+        $order = $fdat{"$name-#row#-$i"} ;
+        $order = $i + 10000 if (!defined($order)) ;
+        $orders{$order} = $i ;
         }
 
     $self -> prepare_fdat_sub ($req) if ((ref ($self) =~ /::/));
 
-    for (my $i = 0; $i < $max; $i++)
+    foreach my $order (sort keys %orders)
         {
+        $i = $orders{$order} ;
         $j = 0 ;
         my @data = ($i+1) ;
         foreach my $field (@$fields)
             {
-            push @data, $fdat{"$name-$field->{name}-$i"} ;
+            $col = exists $field -> {col}?$field -> {col}:$j ;
+            $data[$col+1] = $fdat{"$name-$field->{name}-$i"} ;
+            $j++ ;
             }
         $val = ecos::LdapBase -> joinAttrValue(\@data) ;
         push @rows, $val if ($val ne '') ;    
@@ -213,6 +227,8 @@
   <tr class="cTableRow">
     <td class="cBase cGridLabelBox">[+ $self -> form -> convert_label ($self) +]</td>
     <td class="cBase cGridControlBox">
+        <img src="/images/toup.gif" id="cmdUp" name="-up" title="Zeile Hoch" onclick="[+ $jsname +].upRow()">
+        <img src="/images/todown.gif"  id="cmdDown"  name="-down" title="Zeile runter" onclick="[+ $jsname +].downRow()">
         <img src="/images/button_neu.gif" id="cmdAdd" name="-add" title="Zeile Hinzuf&uuml;gen  Alt-NUM+" onclick="[+ $jsname +].addRow()">
         <img src="/images/button_loeschen.gif"  id="cmdDelete"  name="-delete" title="Markierte Zeile L&ouml;schen  Alt-NUM-" onclick="[+ $jsname +].delRow()">
     </td>
@@ -243,15 +259,15 @@
 
 [$ sub show_grid_table_row ($self, $req, $i) 
 
-    $fields = $self -> {fields} ;
-    $id     = $self -> {id};
-    $name   = $self -> {name} ;
+    my $fields = $self -> {fields} ;
+    my $id     = $self -> {id};
+    my $name   = $self -> {name} ;
+    my $n      = 0 ;
     $]
 
     <tr class="cGridRow" id="[+ "$id-row-$i" +]">
-
         [$foreach $field (@$fields)$]
-            <td class="cGridCell">[-
+            <td class="cGridCell">[$if $n++ == 0$]<input type="hidden" name="[+ "$name-#row#-$i" +]" value="[+ $i +]">[$endif$][-
                 local $field -> {name} = "$name-$field->{name}-$i" ;
                 $field -> show_control ($req)
                 -]</td>
@@ -305,7 +321,17 @@
 
 =head3 fields
 
-Array ref with field definitions
+Array ref with field definitions. Should look like any normal field definition.
+
+The following extra attributes are available:
+
+=over
+
+=item col
+
+Column number inside the @data array, which should be used for this cell
+
+=back
 
 =head3 header_bottom
 



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