fixes for File fields
[catagits/Reaction.git] / lib / Reaction / UI / ViewPort / Field / File.pm
index a1d181c..dfe4dac 100644 (file)
@@ -5,41 +5,23 @@ use Reaction::Types::File;
 
 class File is 'Reaction::UI::ViewPort::Field', which {
 
-  has '+value' => (isa => 'File', required => 0);
-
-  #has '+layout' => (default => 'file');
-
-  override apply_our_events => sub {
-    my ($self, $ctx, $events) = @_;
-    my $value_key = join(':', $self->location, 'value');
-    if (my $upload = $ctx->req->upload($value_key)) {
-      local $events->{$value_key} = $upload;
-      return super();
-    } else {
-      return super();
-    }
-  };
-
-};
-
-1;
-
-=head1 NAME
-
-Reaction::UI::ViewPort::Field::File
+  has '+value' => (isa => Reaction::Types::File::File());
 
-=head1 DESCRIPTION
+  has uri    => ( is => 'rw', lazy_build => 1);
 
-=head1 SEE ALSO
+  has action => (isa => 'CodeRef', is => 'rw', required   => 1);
 
-=head2 L<Reaction::UI::ViewPort::Field>
-
-=head1 AUTHORS
-
-See L<Reaction::Class> for authors.
-
-=head1 LICENSE
+  implements _build_uri => as{
+    my $self = shift;
+    my $c = $self->ctx;
+    my ($c_name, $a_name, @rest) = @{ $self->action->($self->model, $c) };
+    $c->uri_for($c->controller($c_name)->action_for($a_name),@rest);
+  };
 
-See L<Reaction::Class> for the license.
+  implements _value_string_from_value => as {
+      shift->value->stringify;
+  };
+    
+};
 
-=cut
+1;