aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Reaction/Types/DateTime.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/Action/Link.pm15
-rw-r--r--lib/Reaction/UI/WidgetClass.pm9
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/</&lt;/g;
- s/>/&gt;/g;
- s/"/&quot;/g;
- }
+ my $text = HTML::Entities::encode_entities( $attrs->{$_} );
qq{$_="${text}"};
} keys %$attrs);
},