1 package Reaction::UI::Widget::Field::ChooseMany;
3 use Reaction::UI::WidgetClass;
5 class ChooseMany is 'Reaction::UI::Widget::Field', which {
7 field renders [qw/available_values action_buttons selected_values current_values/];
9 current_values renders [ hidden_value over func('viewport', 'current_value_choices') ];
10 hidden_value renders [ string { $_->{value} } ];
12 available_values renders [ option over func('viewport', 'available_value_choices') ];
13 selected_values renders [ option over func('viewport', 'current_value_choices') ];
14 option renders [string {"DUMMY"}], { v_value => sub {$_->{value}}, v_name => sub {$_->{name}} };
32 <td> [% available_values %] </td>
33 <td> [% action_buttons %] </td>
41 =for layout available_values
43 <select size="10" multiple="multiple" name="[% viewport.event_id_for('add_values') | html %]">
47 =for layout selected_values
49 <select size="10" multiple="multiple" name="[% viewport.event_id_for('remove_values') | html %]">
53 =for layout current_values
57 =for layout hidden_value
59 <input type="hidden" name="[% viewport.event_id_for('value') | html %]" value="[% content | html %]">
63 <option value="[% v_value | html %]">[% v_name | html %]</option>
65 =for layout action_buttons
67 <input type="submit" value=">>" name="[% viewport.event_id_for('add_all_values') | html %]" />
68 <input type="submit" value=">" name="[% viewport.event_id_for('do_add_values') | html %]" /> <br />
69 <input type="submit" value="<" name="[% viewport.event_id_for('do_remove_values') | html %]" /> <br />
70 <input type="submit" value="<<" name="[% viewport.event_id_for('remove_all_values') | html %]" /> <br />
74 <!-- This conditional goes away when mst comes up with something better -->
76 <label> [% content | html %]: </label>
81 <!-- This conditional goes away when mst comes up with something better -->
83 <span> [% content | html %] </span> <br />