Commit | Line | Data |
ddd1dc65 |
1 | package Reaction::UI::ViewPort::Field::Mutable::File; |
2 | |
7893faa8 |
3 | use Reaction::Types::File qw/Upload/; |
ddd1dc65 |
4 | use Reaction::Class; |
ddd1dc65 |
5 | |
81393881 |
6 | use namespace::clean -except => [ qw(meta) ]; |
7 | extends 'Reaction::UI::ViewPort::Field'; |
8 | |
22a2b243 |
9 | with 'Reaction::UI::ViewPort::Field::Role::Mutable::Simple' |
10 | => { value_type => Upload }; |
81393881 |
11 | |
12 | override 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 | }; |
22 | sub adopt_value_string { |
23 | my($self) = @_; |
24 | $self->value($self->value_string) if $self->value_string; |
25 | }; |
26 | override _value_string_from_value => sub { '' }; |
7893faa8 |
27 | |
81393881 |
28 | __PACKAGE__->meta->make_immutable; |
7893faa8 |
29 | |
ddd1dc65 |
30 | |
31 | 1; |