[Catalyst-commits] r7635 - in CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk: . lib/CatalystX/CRUD/Controller

karpet at dev.catalyst.perl.org karpet at dev.catalyst.perl.org
Fri Apr 25 21:40:49 BST 2008


Author: karpet
Date: 2008-04-25 21:40:47 +0100 (Fri, 25 Apr 2008)
New Revision: 7635

Modified:
   CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk/Changes
   CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk/lib/CatalystX/CRUD/Controller/RHTMLO.pm
Log:
use next::method instead of forward() and seed object as well as form with passed params

Modified: CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk/Changes
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk/Changes	2008-04-25 15:20:47 UTC (rev 7634)
+++ CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk/Changes	2008-04-25 20:40:47 UTC (rev 7635)
@@ -41,4 +41,6 @@
           This relies on the AUTOLOAD magic in CX::CRUD::Object to work correctly,
           but it means that authors can have more methods than just the c/r/u/d
           types on their Object wrappers (as CX::CRUD::Object::File does).
+        * use Class::C3
+        * prime object as well as form in create() 
 

Modified: CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk/lib/CatalystX/CRUD/Controller/RHTMLO.pm
===================================================================
--- CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk/lib/CatalystX/CRUD/Controller/RHTMLO.pm	2008-04-25 15:20:47 UTC (rev 7634)
+++ CatalystX-CRUD/CatalystX-CRUD-Controller-RHTMLO/trunk/lib/CatalystX/CRUD/Controller/RHTMLO.pm	2008-04-25 20:40:47 UTC (rev 7635)
@@ -39,12 +39,16 @@
 
 sub create : Local {
     my ( $self, $c ) = @_;
-    $c->forward( 'fetch', [0] );
-    $c->forward('edit');
+    $self->next::method($c);
+
+    # allow for params to be passed in to seed the form/object
     for my $field ( $self->field_names ) {
         if ( exists $c->req->params->{$field} ) {
             $c->stash->{form}
                 ->field_value( $field, $c->req->params->{$field} );
+            if ( $c->stash->{object}->can($field) ) {
+                $c->stash->{object}->$field( $c->req->params->{$field} );
+            }
         }
     }
 }
@@ -121,7 +125,7 @@
     # initialize the form with the object's values
     # TODO this might not work if the delegate() does not have
     # 1-to-1 mapping of form fields to object methods.
-    $form->$form_meth( $obj );
+    $form->$form_meth($obj);
 
     # set param values from request
     $form->params( $c->req->params );
@@ -146,7 +150,7 @@
     # TODO this might not work if the delegate() does not have
     # 1-to-1 mapping of form fields to object methods.
     # this is same objection as $form_metho call above
-    $form->$obj_meth( $obj );
+    $form->$obj_meth($obj);
 
     # set id explicitly since there's some bug
     # with param() setting it in save()




More information about the Catalyst-commits mailing list