initial refactor of CRUD controller actions as roles
[catagits/Reaction.git] / lib / Reaction / UI / Controller / Role / Action / View.pm
CommitLineData
931cbc8d 1package Reaction::UI::Controller::Role::Action::View;
2
3use Moose::Role -traits => 'MethodAttributes';
4use Reaction::UI::ViewPort::Object;
5
6requires 'setup_viewport';
7
8sub view :Action :Args(0) {
9 my ($self, $c) = @_;
10 $self->setup_viewport($c, { model => $c->stash->{object} });
11}
12
13around _build_action_viewport_map => sub {
14 my $orig = shift;
15 my $map = shift->$orig( @_ );
16 $map->{view} = 'Reaction::UI::ViewPort::Object';
17 return $map;
18};
19
201;
21
22__END__;
23
24=head1 NAME
25
26Reaction::UI::Controller::Role::Action::View - View action
27
28=head1 DESCRIPTION
29
30Provides a C<view> action, which sets up an L<Object Viewport|Reaction::UI::Viewport::Object>
31using the object located in the C<object> slot of the C<stash>.
32
33=head1 SYNOPSYS
34
35 package MyApp::Controller::Foo;
36
37 use base 'Reaction::Controller';
38 use Reaction::Class;
39
40 with(
41 'Reaction::UI::Controller::Role::GetCollection',
42 'Reaction::UI::Controller::Role::Action::Simple',
43 'Reaction::UI::Controller::Role::Action::Object',
44 'Reaction::UI::Controller::Role::Action::View'
45 );
46
47 __PACKAGE__->config( action => {
48 object => { Chained => 'base' },
49 view => { Chained => 'object' },
50 } );
51
52 sub base :Chained('/base') :CaptureArgs(0) {
53 ...
54 }
55
56
57=head1 ROLES CONSUMED
58
59This role also consumes the following roles:
60
61=over4
62
63=item L<Reaction::UI::Controller::Role::Action::Simple>
64
65=back
66
67=head1 ACTIONS
68
69=head2 view
70
71Chain endpoint with no args, sets up the viewport with the appropriate viewport.
72
73=head1 METHODS
74
75=head2 _build_action_viewport_map
76
77Extends to set the C<view> key in the map to L<Reaction::UI::ViewPort::Object>
78
79=head1 SEE ALSO
80
81=over4
82
83=item L<Reaction::UI::Controller>
84
85=item L<Reaction::UI::Controller::Role::GetCollection>
86
87=item L<Reaction::UI::Controller::Role::Action::Simple>
88
89=item L<Reaction::UI::Controller::Role::Action::List>
90
91=item L<Reaction::UI::Controller::Role::Action::Object>
92
93=item L<Reaction::UI::Controller::Role::Action::Create>
94
95=item L<Reaction::UI::Controller::Role::Action::Update>
96
97=item L<Reaction::UI::Controller::Role::Action::Delete>
98
99=item L<Reaction::UI::Controller::Role::Action::DeleteAll>
100
101=back
102
103=head1 AUTHORS
104
105See L<Reaction::Class> for authors.
106
107=head1 LICENSE
108
109See L<Reaction::Class> for the license.
110
111=cut