X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FReaction%2FUI%2FWidget%2FField.pm;h=7e5fcd3599987c85d6525b4a32ffea1b8e2e1327;hb=d738d11fb21607bb66617ac95a455be8c9fa9e62;hp=4d91afa69ce4dcc2d0fb893b213289a79ba14dad;hpb=cc44a3371f6bb93dfcc28961004b00064942e27b;p=catagits%2FReaction.git diff --git a/lib/Reaction/UI/Widget/Field.pm b/lib/Reaction/UI/Widget/Field.pm index 4d91afa..7e5fcd3 100644 --- a/lib/Reaction/UI/Widget/Field.pm +++ b/lib/Reaction/UI/Widget/Field.pm @@ -2,74 +2,142 @@ package Reaction::UI::Widget::Field; use Reaction::UI::WidgetClass; -class Field, which { - - before fragment widget { - if ($_{viewport}->can('value_string')) { - arg 'field_value' => $_{viewport}->value_string; - } else { - arg 'field_value' => $_{viewport}->value; - } - }; - - implements fragment label_fragment { - if (my $label = $_{viewport}->label) { - arg label => $label; - render 'label'; - } - }; +use namespace::clean -except => [ qw(meta) ]; + +before fragment widget { + if ($_{viewport}->can('value_string')) { + arg 'field_value' => $_{viewport}->value_string; + } else { + arg 'field_value' => ''; #$_{viewport}->value; + } +}; + +implements fragment label_fragment { + if (my $label = $_{viewport}->label) { + arg label => localized $label; + render 'label'; + } }; +__PACKAGE__->meta->make_immutable; + 1; __END__; =head1 NAME -Reaction::UI::Widget::Field +Reaction::UI::Widget::Field - A simple labelled text field =head1 DESCRIPTION -=head1 ATTRIBUTES +This widget renders a simple labelled text field. + +=head1 FRAGMENTS -=head2 id +=head2 widget -Str, lazy builds. +Sets the C argument either to the result of the C +method on the viewport, or to an empty string if the viewport does not support +the method. -=head2 name +=head2 label_fragment -Str, lazy builds. +Will set the C