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'; |
59554696 |
9 | arg 'field_name' => event_id 'value_string' unless defined $_{field_name}; |
2f670e13 |
10 | arg 'field_type' => 'text'; |
59554696 |
11 | arg 'field_class' => "action-field " . $_{viewport}->name; |
881dd557 |
12 | |
13 | # these two are to fire force_events in viewports |
14 | # where you can end up without an event for e.g. |
15 | # HTML checkbox fields |
16 | |
17 | arg 'exists_event' => event_id 'exists'; |
18 | arg 'exists_value' => 1; |
2f670e13 |
19 | }; |
20 | |
21 | implements fragment message_fragment { |
22 | if (my $message = $_{viewport}->message) { |
23 | arg message => $message; |
24 | render 'message'; |
25 | } |
26 | }; |
27 | |
dcba6edf |
28 | implements fragment field_is_required { |
60e23d61 |
29 | my $model = $_{viewport}->model; |
30 | my $attr = $_{viewport}->attribute; |
31 | if ( $model->attribute_is_required($attr) ) { |
dcba6edf |
32 | render 'field_is_required_yes'; |
33 | } else { |
34 | render 'field_is_required_no'; |
35 | } |
36 | }; |
37 | |
2f670e13 |
38 | }; |
39 | |
40 | 1; |
41 | |
42 | __END__; |