X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FReaction%2FUI%2FWidget%2FField%2FMutable%2FChooseMany.pm;h=bb80615142ed67dd770c970f3fb35d28afa368a3;hb=bae75beec20b3b73faa2118db8ebfa5b93c9918a;hp=2f938d6d6c6c8685624ca23cb1ceafe4bc3a0f09;hpb=1734a92a996a20dd6d292fc4aea58e876c24249b;p=catagits%2FReaction.git diff --git a/lib/Reaction/UI/Widget/Field/Mutable/ChooseMany.pm b/lib/Reaction/UI/Widget/Field/Mutable/ChooseMany.pm index 2f938d6..bb80615 100644 --- a/lib/Reaction/UI/Widget/Field/Mutable/ChooseMany.pm +++ b/lib/Reaction/UI/Widget/Field/Mutable/ChooseMany.pm @@ -2,48 +2,53 @@ package Reaction::UI::Widget::Field::Mutable::ChooseMany; use Reaction::UI::WidgetClass; -class ChooseMany is 'Reaction::UI::Widget::Field::Mutable', which { - - implements fragment action_buttons { - foreach my $event ( - qw(add_all_values do_add_values do_remove_values remove_all_values) - ) { - arg "event_id_${event}" => event_id $event; - } - }; - - implements fragment current_values { - my $current_choices = $_{viewport}->current_value_choices; - if( @$current_choices ){ - render hidden_value => over $current_choices; - } else { - arg field_name => event_id 'no_current_value'; - arg '_' => {value => 1}; - render 'hidden_value'; - } - }; - - implements fragment selected_values { - arg event_id_remove_values => event_id 'remove_values'; - render value_option => over $_{viewport}->current_value_choices; - }; - - implements fragment available_values { - arg event_id_add_values => event_id 'add_values'; - render value_option => over $_{viewport}->available_value_choices; - }; - - implements fragment value_option { - arg option_name => $_->{name}; - arg option_value => $_->{value}; - }; - - implements fragment hidden_value { - arg hidden_value => $_->{value}; - }; +use namespace::clean -except => [ qw(meta) ]; +extends 'Reaction::UI::Widget::Field::Mutable'; + + +implements fragment action_buttons { + foreach my $event ( + qw(add_all_values do_add_values do_remove_values remove_all_values) + ) { + arg "event_id_${event}" => event_id $event; + } +}; + +implements fragment current_values { + my $current_choices = $_{viewport}->current_value_choices; + if( @$current_choices ){ + arg field_name => event_id 'value'; + render hidden_value => over $current_choices; + } else { + arg field_name => event_id 'no_current_value'; + arg '_' => {value => 1}; + render 'hidden_value'; + } +}; + +implements fragment selected_values { + arg event_id_remove_values => event_id 'remove_values'; + render value_option => over $_{viewport}->current_value_choices; +}; + +implements fragment available_values { + arg event_id_add_values => event_id 'add_values'; + render value_option => over $_{viewport}->available_value_choices; +}; + +implements fragment value_option { + arg option_name => $_->{name}; + arg option_value => $_->{value}; }; +implements fragment hidden_value { + arg hidden_value => $_->{value}; +}; + +__PACKAGE__->meta->make_immutable; + + 1; __END__;