r31711@martha (orig r1246): groditi | 2009-10-02 17:01:17 -0400
[catagits/Reaction.git] / lib / Reaction / UI / ViewPort / Field / Mutable / File.pm
CommitLineData
ddd1dc65 1package Reaction::UI::ViewPort::Field::Mutable::File;
2
7893faa8 3use Reaction::Types::File qw/Upload/;
ddd1dc65 4use Reaction::Class;
ddd1dc65 5
81393881 6use namespace::clean -except => [ qw(meta) ];
7extends 'Reaction::UI::ViewPort::Field';
8
22a2b243 9with 'Reaction::UI::ViewPort::Field::Role::Mutable::Simple'
10 => { value_type => Upload };
81393881 11
12override apply_our_events => sub {
0b8430a4 13 my ($self, $events) = @_;
81393881 14 my $value_key = $self->event_id_for('value_string');
0b8430a4 15 if (my $upload = $self->ctx->req->upload($value_key)) {
81393881 16 local $events->{$value_key} = $upload;
17 return super();
18 } else {
19 return super();
20 }
21};
22sub adopt_value_string {
23 my($self) = @_;
24 $self->value($self->value_string) if $self->value_string;
25};
26override _value_string_from_value => sub { '' };
7893faa8 27
81393881 28__PACKAGE__->meta->make_immutable;
7893faa8 29
ddd1dc65 30
311;