Commit | Line | Data |
2f670e13 |
1 | package Reaction::UI::Widget::Field::Mutable; |
2 | |
3 | use Reaction::UI::WidgetClass; |
4 | |
36d54b14 |
5 | class Mutable is 'Reaction::UI::Widget::Field', which { |
2f670e13 |
6 | |
7 | before fragment widget { |
62ffa273 |
8 | arg 'field_id' => event_id 'value_string'; |
9 | arg 'field_name' => event_id 'value_string' unless defined $_{field_name}; |
2f670e13 |
10 | arg 'field_type' => 'text'; |
881dd557 |
11 | |
12 | # these two are to fire force_events in viewports |
13 | # where you can end up without an event for e.g. |
14 | # HTML checkbox fields |
15 | |
16 | arg 'exists_event' => event_id 'exists'; |
17 | arg 'exists_value' => 1; |
2f670e13 |
18 | }; |
19 | |
20 | implements fragment message_fragment { |
21 | if (my $message = $_{viewport}->message) { |
22 | arg message => $message; |
23 | render 'message'; |
24 | } |
25 | }; |
26 | |
dcba6edf |
27 | implements fragment field_is_required { |
60e23d61 |
28 | my $model = $_{viewport}->model; |
29 | my $attr = $_{viewport}->attribute; |
30 | if ( $model->attribute_is_required($attr) ) { |
dcba6edf |
31 | render 'field_is_required_yes'; |
32 | } else { |
33 | render 'field_is_required_no'; |
34 | } |
35 | }; |
36 | |
2f670e13 |
37 | }; |
38 | |
39 | 1; |
40 | |
41 | __END__; |