allow redirect_to a url parameter
purge [Fri, 2 Oct 2009 08:51:59 +0000 (08:51 +0000)]
lib/Reaction/UI/Controller.pm
lib/Reaction/UI/ViewPort/Role/Actions.pm
share/skin/base/layout/field/mutable.tt
share/skin/base/layout/field/mutable/choose_one.tt

index 2d1b843..8222215 100644 (file)
@@ -55,7 +55,7 @@ sub pop_viewports_to {
 }
 
 sub redirect_to {
-  my ($self, $c, $to, $cap, $args, $attrs) = @_;
+  my ($self, $c, $to, $cap, $args, $attrs, $domain) = @_;
 
   #the confess calls could be changed later to $c->log ?
   my $action;
@@ -76,6 +76,7 @@ sub redirect_to {
   $args ||= $c->req->args;
   $attrs ||= {};
   my $uri = $c->uri_for($action, $cap, @$args, $attrs);
+  $uri->host($domain) if $domain;
   $c->res->redirect($uri);
 }
 
index 89b5ae3..778115b 100644 (file)
@@ -62,14 +62,18 @@ sub _build_actions {
     my $uri = $proto->{uri} or confess('uri is required in prototype action');
     my $label = exists $proto->{label} ? $proto->{label} : $proto_name;
     my $layout = exists $proto->{layout} ? $proto->{layout} : 'uri';
-    my $layout_args = exists $proto->{layout_args} ? $proto->{layout_args} : {};
 
     my $action = Reaction::UI::ViewPort::URI->new(
       location => join ('-', $loc, 'action', $i++),
       uri => ( ref($uri) eq 'CODE' ? $uri->($target, $ctx) : $uri ),
       display => ( ref($label) eq 'CODE' ? $label->($target, $ctx) : $label ),
-      layout => ( ref($layout) eq 'CODE' ? $layout->($target, $ctx) : $layout ),
-      layout_args => ( ref($layout_args) eq 'CODE' ? $layout_args->($target, $ctx) : $layout_args ),
+      layout => $layout,
+      exists $proto->{layout_args} ?
+        ( ref($proto->{layout_args}) eq 'CODE' ? 
+            $proto->{layout_args}->($target, $ctx) 
+            : 
+            $proto->{layout_args} ) 
+        : ()
     );
     push(@act, $action);
   }
index 333a27a..c4ef2e1 100644 (file)
@@ -18,8 +18,7 @@ class="required_field"
 
 =for layout field
 
-<input type="[% field_type %]" name="[% field_name %]" id="[% field_id %]"
-  [% field_body %] />
+<input type="[% field_type %]" name="[% field_name %]" id="[% field_id %]" [% field_body %] />
 
 =for layout field_body
 
index 0db3ffd..c366a86 100644 (file)
@@ -15,8 +15,7 @@
 
 =for layout option
 
-  <option value="[% option_value %]" [% option_is_selected %]
-    > [% option_name %]</option>
+  <option value="[% option_value %]" [% option_is_selected %]>[% option_name %]</option>
 
 =for layout option_is_selected_yes