484453cb703aca514322379f4a9a3630212faaec
[catagits/Reaction.git] / lib / Reaction / UI / Widget / ActionForm.pm
1 package Reaction::UI::Widget::ActionForm;
2
3 use Reaction::UI::WidgetClass;
4
5 class ActionForm, which {
6   widget renders [qw/header fields buttons footer/
7                   => { viewport => func('self','viewport') } ];
8
9   fields renders [viewport over func('self','ordered_fields')];
10
11   buttons renders [ string {"DUMMY"} ], {message => func('viewport','message');
12   header  renders [ string {"DUMMY"} ];
13   footer  renders [ string {"DUMMY"} ];
14
15 };
16
17 1;
18
19 __END__;
20
21 =for layout widget
22
23   <form action="" method="post" enctype="multipart/form-data">
24     [% header  %]
25     [% fields  %]
26     [% buttons %]
27     [% footer  %]
28   </form>
29
30 =for layout header
31
32 <h2>Le Header</h2>
33
34 =for layout fields
35
36 [% content %] <br />
37
38 =for layout buttons
39
40   [% IF message; %]
41     <span>[% message %]</span> <br />
42   [% END; %]
43
44   [% allowed_events = viewport.accept_events; %]
45   [% IF allowed_events.grep('^ok$').size; %]
46     <input type="submit" name="[% viewport.event_id_for('ok')    | html%]" value="ok" />
47   [% END; %]
48
49   [% IF (viewport.ordered_fields.size != 0) && allowed_events.grep('^apply$').size; %]
50     <input type="submit" name="[% viewport.event_id_for('apply') | html%]" value="apply" />
51   [% END; %]
52
53   [% IF allowed_events.grep('^close$').size; %]
54     <input type="submit" name="[% viewport.event_id_for('close') | html%]" value="cancel" />
55   [% END; %]
56   <br />
57
58 =for layout footer
59
60   <h2>Le Footer</h2>
61
62 =cut