diff options
author | matthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2007-12-14 21:10:01 +0000 |
---|---|---|
committer | matthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2007-12-14 21:10:01 +0000 |
commit | 664d660c64b882714d87f3a8dc7491723042ae0c (patch) | |
tree | eb70016566ed692ef60e63c65f9ecced4311c96f /lib/Reaction/UI/Widget/Field.pm | |
parent | aa8c0c904641fa20c5f50882d09c1502aae19b3a (diff) | |
download | reaction-664d660c64b882714d87f3a8dc7491723042ae0c.tar.gz reaction-664d660c64b882714d87f3a8dc7491723042ae0c.zip |
port actionform, field widgets to declarative system
Diffstat (limited to 'lib/Reaction/UI/Widget/Field.pm')
-rw-r--r-- | lib/Reaction/UI/Widget/Field.pm | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/lib/Reaction/UI/Widget/Field.pm b/lib/Reaction/UI/Widget/Field.pm index 40ca595..9b22905 100644 --- a/lib/Reaction/UI/Widget/Field.pm +++ b/lib/Reaction/UI/Widget/Field.pm @@ -4,15 +4,28 @@ use Reaction::UI::WidgetClass; class Field, which { - fragment widget [qw/label field message/ - => { id => sub { $_{viewport}->event_id_for('value') }, - name => sub { $_{viewport}->event_id_for('value') }, - ]; - - fragment field [ string { $_{viewport}->value }, ]; - - fragment label [ string { $_{viewport}->label }, ]; - fragment message [ string { $_{viewport}->message }, ]; + before fragment widget { + arg 'field_id' => event_id 'value'; + arg 'field_name' => event_id 'value'; + arg 'field_type' => 'text'; + if ($_{viewport}->can('value_string')) { + arg 'field_value' => $_{viewport}->value_string; + } + }; + + implements fragment message_fragment { + if (my $message = $_{viewport}->message) { + arg message => $message; + render 'message'; + } + }; + + implements fragment label_fragment { + if (my $label = $_{viewport}->label) { + arg label => $label; + render 'label'; + } + }; }; |