Author: richter Date: Sun Apr 15 14:54:10 2012 New Revision: 1326356 URL: http://svn.apache.org/viewvc?rev=1326356&view=rev Log: Fix bug with Form unique_id & add support for ordering grid rows
Modified: perl/embperl/trunk/Embperl/Form.pm perl/embperl/trunk/Embperl/Form/Control/grid.pm Modified: perl/embperl/trunk/Embperl/Form.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form.pm?rev=1326356&r1=1326355&r2=1326356&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form.pm (original) +++ perl/embperl/trunk/Embperl/Form.pm Sun Apr 15 14:54:10 2012 @@ -69,11 +69,24 @@ sub sub_new $self -> {jsnamespace} .= '.' if ($self -> {jsnamespace}) ; $self -> {control_packages} = $options -> {control_packages} ; $self -> {datasrc_packages} = $options -> {datasrc_packages} ; - $self -> {formptr} = $options -> {formptr} . '/' . $id || "$self" ; - + $self -> {formptr} = ($options -> {formptr} || "$self") . '/' . $id ; bless $self, $class if (!ref $class); + # The following lines needs to there twice! + # some weired bug in Perl? + $Embperl::FormData::forms{$self -> {formptr}} = $self ; $Embperl::FormData::forms{$self -> {formptr}} = $self ; + + if ($toplevel) + { + $self -> {unique_id} = $self -> {formptr} =~ /HASH/?'_' . $$ . '_' . $form_cnt++:$self -> {formptr} ; + $self -> {unique_id} =~ s/[^a-z0-9_]/_/g ; + } + else + { + $self -> {unique_id} = $self -> parent_form -> {unique_id} ; + } + if (!$validate_rules) { $validate_rules = $self -> {validate_rules} = [] ; @@ -198,6 +211,7 @@ sub new_object } } } + $obj = $name -> new ($args) ; $ctlmod = $name ; } @@ -496,13 +510,7 @@ sub show_controls if ($self -> {toplevel}) { $req -> {form_options_masks} = ($options && $options -> {masks}) || {} ; - $self -> {unique_id} = '_' . $$ . '_' . $form_cnt++ ; - } - else - { - $self -> {unique_id} = $self -> parent_form -> {unique_id} ; } - my $lines = $self -> {layout} ; my %n ; my $activesubid ; Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1326356&r1=1326355&r2=1326356&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Sun Apr 15 14:54:10 2012 @@ -94,7 +94,9 @@ sub init_data { if ($order_desc) { - @entries = sort { print STRERR "$b->[$order] cmp $a->[$order]\n" ; $b -> [$order] cmp $a -> [$order] } @entries ; + @entries = sort { + #print STRERR "$b->[$order] cmp $a->[$order]\n" ; + $b -> [$order] cmp $a -> [$order] } @entries ; } else { @@ -437,11 +439,12 @@ $] my $id = $self -> {fullid}; my $i = 0 ; my $max = $fdat{"__${name}_max"} || 1 ; + my $order = $self -> {order_indices} ; $] <tbody> [* for ($i = 0; $i < $max ; $i++ ) { *] - [- $self -> show_grid_table_row ($req, $i) ; -] + [- $self -> show_grid_table_row ($req, $order?$order -> [$i]:$i) ; -] [* } *] </tbody> --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org