
richter at apache
Apr 9, 2008, 3:34 AM
Post #1 of 1
(134 views)
Permalink
|
|
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ügen Alt-NUM+" onclick="[+ $jsname +].addRow()"> <img src="/images/button_loeschen.gif" id="cmdDelete" name="-delete" title="Markierte Zeile Lö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[at]perl.apache.org For additional commands, e-mail: embperl-cvs-help[at]perl.apache.org
|