factor out error_for_attribute so that can emulate required => sub {} behaviour
[catagits/Reaction.git] / lib / Reaction / UI / Widget / Field / Mutable.pm
1 package Reaction::UI::Widget::Field::Mutable;
2
3 use Reaction::UI::WidgetClass;
4
5 class Mutable is 'Reaction::UI::Widget::Field', which {
6
7    before fragment widget {
8      arg 'field_id' => event_id 'value_string';
9      arg 'field_name' => event_id 'value_string' unless defined $_{field_name};
10      arg 'field_type' => 'text';
11    };
12
13    implements fragment message_fragment {
14      if (my $message = $_{viewport}->message) {
15        arg message => $message;
16        render 'message';
17      }
18    };
19
20    implements fragment field_is_required {
21      my $model = $_{viewport}->model;
22      my $attr  = $_{viewport}->attribute;
23      if ( $model->attribute_is_required($attr) ) {
24          render 'field_is_required_yes';
25      } else {
26          render 'field_is_required_no';
27      }
28    };
29
30 };
31
32 1;
33
34 __END__;