X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FReaction%2FUI%2FWidget%2FField.pm;h=7e5fcd3599987c85d6525b4a32ffea1b8e2e1327;hb=f9b32c83550e273bec97c9be5b63079addd4846b;hp=40d6e95a3cfd92e0c71f20ed52885d614305e41b;hpb=f2756356bd70930992bcd498accc29dcb01075e2;p=catagits%2FReaction.git diff --git a/lib/Reaction/UI/Widget/Field.pm b/lib/Reaction/UI/Widget/Field.pm index 40d6e95..7e5fcd3 100644 --- a/lib/Reaction/UI/Widget/Field.pm +++ b/lib/Reaction/UI/Widget/Field.pm @@ -2,54 +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 +This widget renders a simple labelled text field. + =head1 FRAGMENTS =head2 widget -Additional variables available in topic hash: "viewport", "id", "name". +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 label_fragment + +Will set the C