documentation update, some api docs, overview and tutorial upto first DM and IM inclu...
[catagits/Reaction.git] / lib / Reaction / UI / Widget / Field / Mutable.pm
CommitLineData
2f670e13 1package Reaction::UI::Widget::Field::Mutable;
2
3use Reaction::UI::WidgetClass;
4
bae75bee 5use namespace::clean -except => [ qw(meta) ];
6extends 'Reaction::UI::Widget::Field';
7
8
9
10 before fragment widget {
11 arg 'field_id' => event_id 'value_string';
12 arg 'field_name' => event_id 'value_string' unless defined $_{field_name};
13 arg 'field_type' => 'text';
14 arg 'field_class' => "action-field " . $_{viewport}->name;
15
16 # these two are to fire force_events in viewports
17 # where you can end up without an event for e.g.
18 # HTML checkbox fields
19
20 arg 'exists_event' => event_id 'exists';
21 arg 'exists_value' => 1;
22 };
23
24 implements fragment message_fragment {
b44e101f 25 my $vp = $_{viewport};
c72dfafb 26 return unless $vp->has_message;
27 my $message = $vp->message;
b44e101f 28 if ($message) {
d219104c 29 arg message => localized $message;
bae75bee 30 render 'message';
31 }
32 };
33
34 implements fragment field_is_required {
39453d9d 35 my $vp = $_{viewport};
36 if ( $vp->value_is_required && !$vp->value_string ) {
bae75bee 37 render 'field_is_required_yes';
38 } else {
39 render 'field_is_required_no';
40 }
41 };
42
43__PACKAGE__->meta->make_immutable;
44
2f670e13 45
461;
47
48__END__;