aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm1
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable.pm11
-rw-r--r--share/skin/base/layout/field/mutable/choose_many.tt2
-rw-r--r--share/skin/base/layout/field/mutable/choose_one.tt2
4 files changed, 11 insertions, 5 deletions
diff --git a/lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm b/lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm
index b73114c..96ee6dc 100644
--- a/lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm
+++ b/lib/Reaction/UI/ViewPort/Field/Role/Mutable.pm
@@ -49,7 +49,6 @@ sub can_sync_to_action {
};
sub sync_to_action {
my ($self) = @_;
- return unless $self->needs_sync;
return unless $self->can_sync_to_action;
my $attr = $self->attribute;
diff --git a/lib/Reaction/UI/Widget/Field/Mutable.pm b/lib/Reaction/UI/Widget/Field/Mutable.pm
index 93900e2..1364b39 100644
--- a/lib/Reaction/UI/Widget/Field/Mutable.pm
+++ b/lib/Reaction/UI/Widget/Field/Mutable.pm
@@ -22,16 +22,19 @@ extends 'Reaction::UI::Widget::Field';
};
implements fragment message_fragment {
- if (my $message = $_{viewport}->message) {
+ my $vp = $_{viewport};
+ my $message = $_{viewport}->message;
+ $message ||= $vp->name.' is required'
+ if $vp->value_is_required && !$vp->value_string;
+ if ($message) {
arg message => localized $message;
render 'message';
}
};
implements fragment field_is_required {
- my $model = $_{viewport}->model;
- my $attr = $_{viewport}->attribute;
- if ( $model->attribute_is_required($attr) ) {
+ my $vp = $_{viewport};
+ if ( $vp->value_is_required && !$vp->value_string ) {
render 'field_is_required_yes';
} else {
render 'field_is_required_no';
diff --git a/share/skin/base/layout/field/mutable/choose_many.tt b/share/skin/base/layout/field/mutable/choose_many.tt
index 06a543a..51f315e 100644
--- a/share/skin/base/layout/field/mutable/choose_many.tt
+++ b/share/skin/base/layout/field/mutable/choose_many.tt
@@ -50,4 +50,6 @@
<input type="submit" value="&lt;&lt;" name="[% event_id_remove_all_values %]" />
</div>
+=for layout message
+
=cut
diff --git a/share/skin/base/layout/field/mutable/choose_one.tt b/share/skin/base/layout/field/mutable/choose_one.tt
index 74e8d8c..0db3ffd 100644
--- a/share/skin/base/layout/field/mutable/choose_one.tt
+++ b/share/skin/base/layout/field/mutable/choose_one.tt
@@ -24,4 +24,6 @@ selected="selected"
=for layout option_is_selected_no
+=for layout message
+
=cut