1 package Reaction::UI::Widget::Field::Mutable::ChooseMany;
3 use Reaction::UI::WidgetClass;
5 class ChooseMany is 'Reaction::UI::Widget::Field::Mutable', which {
7 implements fragment action_buttons {
9 qw(add_all_values do_add_values do_remove_values remove_all_values)
11 arg "event_id_${event}" => event_id $event;
15 implements fragment current_values {
16 my $current_choices = $_{viewport}->current_value_choices;
17 if( @$current_choices ){
18 arg field_name => event_id 'value';
19 render hidden_value => over $current_choices;
21 arg field_name => event_id 'no_current_value';
22 arg '_' => {value => 1};
23 render 'hidden_value';
27 implements fragment selected_values {
28 arg event_id_remove_values => event_id 'remove_values';
29 render value_option => over $_{viewport}->current_value_choices;
32 implements fragment available_values {
33 arg event_id_add_values => event_id 'add_values';
34 render value_option => over $_{viewport}->available_value_choices;
37 implements fragment value_option {
38 arg option_name => $_->{name};
39 arg option_value => $_->{value};
42 implements fragment hidden_value {
43 arg hidden_value => $_->{value};
54 Reaction::UI::Widget::Field::ChooseMany
58 See L<Reaction::UI::Widget::Field>
60 This needs a refactor to not be tied to a dual select box, but ENOTIME
66 renders C<available_values>, C<action_buttons>, C<selected_values> and C<current_values>
70 renders the viewport's current_value_choices over hidden_value
74 C<content> is the value of the current choice
76 =head2 available_value
78 rendersthe viewport's current_available_value_choices over the option fragment
82 rendersthe viewport's current_selected_value_choices over the option fragment
86 C<content> is a dummy value but C<v_value> and C<v_name> are both set.
90 See L<Reaction::Class> for authors.
94 See L<Reaction::Class> for the license.