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

Reply via email to