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