aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorgroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2009-01-08 22:46:04 +0000
committergroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2009-01-08 22:46:04 +0000
commite29819c4772c3fc8f59d840cfbf7e9668e04cf1a (patch)
treece9bab363155b38844b175ea60f6f276f5d6bbcb /lib
parent8cbc9da5e4ad55ceeca9338e0e76e498668c7d76 (diff)
downloadreaction-e29819c4772c3fc8f59d840cfbf7e9668e04cf1a.tar.gz
reaction-e29819c4772c3fc8f59d840cfbf7e9668e04cf1a.zip
message and error message support. why has this been missing for so long?
Diffstat (limited to 'lib')
-rw-r--r--lib/ComponentUI/Controller/TestModel/Foo.pm3
-rw-r--r--lib/Reaction/UI/ViewPort/Action.pm5
-rw-r--r--lib/Reaction/UI/Widget/Action.pm12
3 files changed, 19 insertions, 1 deletions
diff --git a/lib/ComponentUI/Controller/TestModel/Foo.pm b/lib/ComponentUI/Controller/TestModel/Foo.pm
index 99f33c1..56839a2 100644
--- a/lib/ComponentUI/Controller/TestModel/Foo.pm
+++ b/lib/ComponentUI/Controller/TestModel/Foo.pm
@@ -23,6 +23,9 @@ __PACKAGE__->config(
excluded_fields => [qw/id/],
},
},
+ delete => {
+ ViewPort => {message => 'Are you sure you want to delete this Foo?'}
+ },
},
);
diff --git a/lib/Reaction/UI/ViewPort/Action.pm b/lib/Reaction/UI/ViewPort/Action.pm
index 6a2ac58..97f5a44 100644
--- a/lib/Reaction/UI/ViewPort/Action.pm
+++ b/lib/Reaction/UI/ViewPort/Action.pm
@@ -2,7 +2,7 @@ package Reaction::UI::ViewPort::Action;
use Reaction::Class;
-use MooseX::Types::Moose qw/Int/;
+use MooseX::Types::Moose qw/Int Str/;
use Reaction::Types::Core qw/NonEmptySimpleStr/;
use namespace::clean -except => [ qw(meta) ];
@@ -10,6 +10,9 @@ use namespace::clean -except => [ qw(meta) ];
extends 'Reaction::UI::ViewPort::Object::Mutable';
with 'Reaction::UI::ViewPort::Action::Role::OK';
+has message => (is => 'rw', isa => Str);
+has error_message => (is => 'rw', isa => Str);
+
#this has to fucking go. it BLOWS.
has method => (
is => 'rw',
diff --git a/lib/Reaction/UI/Widget/Action.pm b/lib/Reaction/UI/Widget/Action.pm
index 2957317..9c94174 100644
--- a/lib/Reaction/UI/Widget/Action.pm
+++ b/lib/Reaction/UI/Widget/Action.pm
@@ -9,6 +9,18 @@ after fragment widget {
arg 'method' => $_{viewport}->method;
};
+implements fragment message {
+ return unless $_{viewport}->has_message;
+ arg message_string => $_{viewport}->message;
+ render 'message_layout';
+};
+
+implements fragment error_message {
+ return unless $_{viewport}->has_error_message;
+ arg message_string => $_{viewport}->error_message;
+ render 'error_message_layout';
+};
+
implements fragment ok_button_fragment {
if (grep { $_ eq 'ok' } $_{viewport}->accept_events) {
arg 'event_id' => event_id 'ok';