diff options
-rw-r--r-- | lib/Reaction/Types/DateTime.pm | 2 | ||||
-rw-r--r-- | lib/Reaction/UI/ViewPort/Action/Link.pm | 15 | ||||
-rw-r--r-- | lib/Reaction/UI/WidgetClass.pm | 9 |
3 files changed, 10 insertions, 16 deletions
diff --git a/lib/Reaction/Types/DateTime.pm b/lib/Reaction/Types/DateTime.pm index d6294d2..c696d03 100644 --- a/lib/Reaction/Types/DateTime.pm +++ b/lib/Reaction/Types/DateTime.pm @@ -9,7 +9,7 @@ use DateTime; subtype DateTime, as Object, where { $_->isa('DateTime') }, - message { "Must be of the form YYYY-MM-DD HH:MM:SS" }; + message { "Please enter a date and time" }; use DateTime::SpanSet; diff --git a/lib/Reaction/UI/ViewPort/Action/Link.pm b/lib/Reaction/UI/ViewPort/Action/Link.pm index 824c33d..190b393 100644 --- a/lib/Reaction/UI/ViewPort/Action/Link.pm +++ b/lib/Reaction/UI/ViewPort/Action/Link.pm @@ -5,25 +5,24 @@ use Reaction::Class; use namespace::clean -except => [ qw(meta) ]; extends 'Reaction::UI::ViewPort'; +has uri => ( is => 'rw', lazy_build => 1); +has label => (is => 'rw', required => 1); +has target => (isa => 'Object', is => 'rw', required => 1); +has action => (isa => 'CodeRef', is => 'rw', required => 1); -has label => (is => 'rw', required => 1); -has uri => ( is => 'rw', lazy_build => 1); - -has target => (isa => 'Object', is => 'rw', required => 1); -has action => (isa => 'CodeRef', is => 'rw', required => 1); sub BUILD { my $self = shift; $self->label( $self->label->($self->target) ) if ref $self->label eq 'CODE'; -}; +} + sub _build_uri { my $self = shift; my $c = $self->ctx; my ($c_name, $a_name, @rest) = @{ $self->action->($self->target, $c) }; $c->uri_for($c->controller($c_name)->action_for($a_name),@rest); -}; +} __PACKAGE__->meta->make_immutable; - 1; diff --git a/lib/Reaction/UI/WidgetClass.pm b/lib/Reaction/UI/WidgetClass.pm index 622eec4..e68add0 100644 --- a/lib/Reaction/UI/WidgetClass.pm +++ b/lib/Reaction/UI/WidgetClass.pm @@ -5,6 +5,7 @@ use Reaction::Class; use Reaction::UI::Widget; use Data::Dumper; use Devel::Declare; +use HTML::Entities (); use aliased 'Reaction::UI::WidgetClass::_OVER'; no warnings 'once'; @@ -89,13 +90,7 @@ override exports_for_package => sub { attrs => sub { my ($attrs) = @_; return join(' ', map { - my $text = $attrs->{$_}; - for ($text) { - s/&/&/g; - s/</</g; - s/>/>/g; - s/"/"/g; - } + my $text = HTML::Entities::encode_entities( $attrs->{$_} ); qq{$_="${text}"}; } keys %$attrs); }, |