blob: 0e670e5ad915e76ef0033e5ecea01df1d7b22483 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package Reaction::UI::Widget::Field::Mutable;
use Reaction::UI::WidgetClass;
use namespace::clean -except => [ qw(meta) ];
extends 'Reaction::UI::Widget::Field';
before fragment widget {
arg 'field_id' => event_id 'value_string';
arg 'field_name' => event_id 'value_string' unless defined $_{field_name};
arg 'field_type' => 'text';
arg 'field_class' => "action-field " . $_{viewport}->name;
# these two are to fire force_events in viewports
# where you can end up without an event for e.g.
# HTML checkbox fields
arg 'exists_event' => event_id 'exists';
arg 'exists_value' => 1;
};
implements fragment message_fragment {
if (my $message = $_{viewport}->message) {
arg message => localized $message;
render 'message';
}
};
implements fragment field_is_required {
my $vp = $_{viewport};
if ( $vp->value_is_required && !$vp->value_string ) {
render 'field_is_required_yes';
} else {
render 'field_is_required_no';
}
};
__PACKAGE__->meta->make_immutable;
1;
__END__;
|