Commit | Line | Data |
---|---|---|
7adfd53f | 1 | package Reaction::UI::ViewPort::Field::File; |
2 | ||
3 | use Reaction::Class; | |
ddd1dc65 | 4 | use Reaction::Types::File; |
7adfd53f | 5 | |
81393881 | 6 | use namespace::clean -except => [ qw(meta) ]; |
7 | extends 'Reaction::UI::ViewPort::Field'; | |
7adfd53f | 8 | |
7b5e71ad | 9 | use MooseX::Types::Moose qw/CodeRef/; |
6ab43711 | 10 | |
81393881 | 11 | has '+value' => (isa => Reaction::Types::File::File()); |
6ab43711 | 12 | |
81393881 | 13 | has uri => ( is => 'rw', lazy_build => 1); |
7adfd53f | 14 | |
7b5e71ad | 15 | has action => (isa => CodeRef, is => 'rw', required => 1); |
16 | ||
81393881 | 17 | sub _build_uri { |
18 | my $self = shift; | |
19 | my $c = $self->ctx; | |
20 | my ($c_name, $a_name, @rest) = @{ $self->action->($self->model, $c) }; | |
21 | $c->uri_for($c->controller($c_name)->action_for($a_name),@rest); | |
7b5e71ad | 22 | } |
23 | ||
81393881 | 24 | sub _value_string_from_value { |
25 | shift->value->stringify; | |
7b5e71ad | 26 | } |
27 | ||
81393881 | 28 | __PACKAGE__->meta->make_immutable; |
29 | ||
7adfd53f | 30 | |
31 | 1; |