diff options
author | matthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2007-11-26 20:44:56 +0000 |
---|---|---|
committer | matthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2007-11-26 20:44:56 +0000 |
commit | d7b00a506917b0fc21c7781985ea65293870fbbc (patch) | |
tree | 2bcd17522d61e41245715c8bdc864c8c112f49b1 | |
parent | f2fef590a7283ea919bdaa51bac9d433e8785a09 (diff) | |
download | reaction-d7b00a506917b0fc21c7781985ea65293870fbbc.tar.gz reaction-d7b00a506917b0fc21c7781985ea65293870fbbc.zip |
ObjectView converted
-rw-r--r-- | lib/Reaction/UI/RenderingContext/TT.pm | 15 | ||||
-rw-r--r-- | lib/Reaction/UI/ViewPort/DisplayField.pm | 2 | ||||
-rw-r--r-- | lib/Reaction/UI/Widget/DisplayField.pm | 9 | ||||
-rw-r--r-- | lib/Reaction/UI/Widget/DisplayField/Boolean.pm | 2 | ||||
-rw-r--r-- | lib/Reaction/UI/Widget/DisplayField/Collection.pm | 17 | ||||
-rw-r--r-- | lib/Reaction/UI/Widget/DisplayField/DateTime.pm | 2 | ||||
-rw-r--r-- | lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm | 2 | ||||
-rw-r--r-- | lib/Reaction/UI/Widget/ObjectView.pm | 12 | ||||
-rw-r--r-- | lib/Reaction/UI/WidgetClass.pm | 3 | ||||
-rw-r--r-- | share/skin/default/layout/display_field/boolean.tt | 13 | ||||
-rw-r--r-- | share/skin/default/layout/display_field/collection.tt | 10 | ||||
-rw-r--r-- | share/skin/default/layout/display_field/date_time.tt | 11 | ||||
-rw-r--r-- | share/skin/default/layout/display_field/number.tt | 11 | ||||
-rw-r--r-- | share/skin/default/layout/display_field/related_object.tt | 11 | ||||
-rw-r--r-- | share/skin/default/layout/display_field/string.tt | 13 | ||||
-rw-r--r-- | share/skin/default/layout/display_field/text.tt | 13 | ||||
-rw-r--r-- | share/skin/default/layout/object_view.tt | 8 |
17 files changed, 80 insertions, 74 deletions
diff --git a/lib/Reaction/UI/RenderingContext/TT.pm b/lib/Reaction/UI/RenderingContext/TT.pm index e925ff6..8308c0c 100644 --- a/lib/Reaction/UI/RenderingContext/TT.pm +++ b/lib/Reaction/UI/RenderingContext/TT.pm @@ -62,21 +62,6 @@ class TT is RenderingContext, which { } grep { !/^_/ } keys %$args }; - # if there's an _ key that's our current topic (decalarative syntax - # sees $_ as $_{_}) so build an iterator around it. - - # There's possibly a case for making everything an iterator but I think - # any fragment should only have a single multiple arg - - # we also create a 'pos' shortcut to content.pos for brevity - - if (my $topic = $args->{_}) { - my $iter = $self->iter_class->new( - $topic, $self - ); - $tt_args->{content} = $iter; - $tt_args->{pos} = sub { $iter->pos }; - } $body .= $lset->tt_view->include($fname, $tt_args); #warn "rendered ${fname}, body length now ".length($body)."\n"; }; diff --git a/lib/Reaction/UI/ViewPort/DisplayField.pm b/lib/Reaction/UI/ViewPort/DisplayField.pm index b8269dc..3ef48af 100644 --- a/lib/Reaction/UI/ViewPort/DisplayField.pm +++ b/lib/Reaction/UI/ViewPort/DisplayField.pm @@ -44,6 +44,8 @@ class DisplayField is 'Reaction::UI::ViewPort', which { return ''; }; + implements 'value_string' => as { shift->value }; + }; 1; diff --git a/lib/Reaction/UI/Widget/DisplayField.pm b/lib/Reaction/UI/Widget/DisplayField.pm index a688c28..d881025 100644 --- a/lib/Reaction/UI/Widget/DisplayField.pm +++ b/lib/Reaction/UI/Widget/DisplayField.pm @@ -3,9 +3,12 @@ package Reaction::UI::Widget::DisplayField; use Reaction::UI::WidgetClass; class DisplayField, which { - fragment widget [ qw/label value/ ]; - fragment label [ string { $_{viewport}->label } ]; - fragment value [ string { $_{viewport}->value } ]; + + before fragment widget { + arg label => $_{viewport}->label; + arg value => $_{viewport}->value_string; + }; + }; 1; diff --git a/lib/Reaction/UI/Widget/DisplayField/Boolean.pm b/lib/Reaction/UI/Widget/DisplayField/Boolean.pm index 82f3b22..76ba41f 100644 --- a/lib/Reaction/UI/Widget/DisplayField/Boolean.pm +++ b/lib/Reaction/UI/Widget/DisplayField/Boolean.pm @@ -3,7 +3,7 @@ package Reaction::UI::Widget::DisplayField::Boolean; use Reaction::UI::WidgetClass; class Boolean is 'Reaction::UI::Widget::DisplayField', which { - fragment value [ string { $_{viewport}->value_string } ]; + }; 1; diff --git a/lib/Reaction/UI/Widget/DisplayField/Collection.pm b/lib/Reaction/UI/Widget/DisplayField/Collection.pm index bcac990..40bedd3 100644 --- a/lib/Reaction/UI/Widget/DisplayField/Collection.pm +++ b/lib/Reaction/UI/Widget/DisplayField/Collection.pm @@ -3,10 +3,19 @@ package Reaction::UI::Widget::DisplayField::Collection; use Reaction::UI::WidgetClass; class Collection, which { - fragment widget [ qw/label list/ ]; - fragment label [ string { $_{viewport}->label } ]; - fragment list [ item => over func('viewport', 'value_names') ]; - fragment item [ string { $_ } ]; + + before fragment widget { + arg 'label' => $_{viewport}->label; + }; + + implements fragment list { + render 'item' => over $_{viewport}->value_names; + }; + + implements fragment item { + arg 'name' => $_; + }; + }; 1; diff --git a/lib/Reaction/UI/Widget/DisplayField/DateTime.pm b/lib/Reaction/UI/Widget/DisplayField/DateTime.pm index 8f44d9e..35b2651 100644 --- a/lib/Reaction/UI/Widget/DisplayField/DateTime.pm +++ b/lib/Reaction/UI/Widget/DisplayField/DateTime.pm @@ -3,7 +3,7 @@ package Reaction::UI::Widget::DisplayField::DateTime; use Reaction::UI::WidgetClass; class DateTime is 'Reaction::UI::Widget::DisplayField', which { - fragment value [ string { $_{viewport}->value_string } ]; + }; 1; diff --git a/lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm b/lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm index a477ef7..f6aef23 100644 --- a/lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm +++ b/lib/Reaction/UI/Widget/DisplayField/RelatedObject.pm @@ -3,7 +3,7 @@ package Reaction::UI::Widget::DisplayField::RelatedObject; use Reaction::UI::WidgetClass; class RelatedObject is 'Reaction::UI::Widget::DisplayField', which { - fragment value [ string { $_{viewport}->value_string } ]; + }; 1; diff --git a/lib/Reaction/UI/Widget/ObjectView.pm b/lib/Reaction/UI/Widget/ObjectView.pm index 6da4c34..a3455ba 100644 --- a/lib/Reaction/UI/Widget/ObjectView.pm +++ b/lib/Reaction/UI/Widget/ObjectView.pm @@ -3,9 +3,15 @@ package Reaction::UI::Widget::ObjectView; use Reaction::UI::WidgetClass; class ObjectView, which { - fragment widget [ 'field_list' ]; - fragment field_list [ field => over func('viewport', 'ordered_fields') ]; - fragment field [ 'viewport' ]; + + implements fragment field_list { + render field => over $_{viewport}->ordered_fields; + }; + + implements fragment field { + render 'viewport'; + }; + }; 1; diff --git a/lib/Reaction/UI/WidgetClass.pm b/lib/Reaction/UI/WidgetClass.pm index beebe41..ac6feaf 100644 --- a/lib/Reaction/UI/WidgetClass.pm +++ b/lib/Reaction/UI/WidgetClass.pm @@ -85,7 +85,7 @@ class WidgetClass, which { implements handle_fragment => as { my ($self, $name, $proto, $code) = @_; -warn ($self, $name, $code); +#warn ($self, $name, $code); return ("_fragment_${name}" => $self->wrap_as_fragment($code)); }; @@ -102,6 +102,7 @@ warn ($self, $name, $code); local $current_widget = $_[0]; local $do_render = $_[1]; local *_ = \%{$_[2]}; + local $_ = $_[2]->{_}; local $new_args = $_[3]; $code->(@_); }; diff --git a/share/skin/default/layout/display_field/boolean.tt b/share/skin/default/layout/display_field/boolean.tt index 74e02e4..d531087 100644 --- a/share/skin/default/layout/display_field/boolean.tt +++ b/share/skin/default/layout/display_field/boolean.tt @@ -1,13 +1,14 @@ =for layout widget -[% content %] +[% label_layout %] +[% value_layout %] -=for layout label +=for layout label_layout -<strong > [% content | html %]: </strong> +<strong > [% label %]: </strong> -=for layout value +=for layout value_layout -[% content | html %] +[% value %] -=cut
\ No newline at end of file +=cut diff --git a/share/skin/default/layout/display_field/collection.tt b/share/skin/default/layout/display_field/collection.tt index 3bc65a9..47244e7 100644 --- a/share/skin/default/layout/display_field/collection.tt +++ b/share/skin/default/layout/display_field/collection.tt @@ -1,20 +1,20 @@ =for layout widget -[% label %] +[% label_box %] [% list %] -=for layout label +=for layout label_box -<strong > [% content | html %]: </strong> +<strong> [% label %]: </strong> =for layout list <ul> -[% content %] +[% call_next %] </ul> =for layout item -<li>[% content | html %]</li> +<li>[% name %]</li> =cut diff --git a/share/skin/default/layout/display_field/date_time.tt b/share/skin/default/layout/display_field/date_time.tt index 1fcad1a..d531087 100644 --- a/share/skin/default/layout/display_field/date_time.tt +++ b/share/skin/default/layout/display_field/date_time.tt @@ -1,13 +1,14 @@ =for layout widget -[% content %] +[% label_layout %] +[% value_layout %] -=for layout label +=for layout label_layout -<strong> [% content | html %]: </strong> +<strong > [% label %]: </strong> -=for layout value +=for layout value_layout -[% content | html %] +[% value %] =cut diff --git a/share/skin/default/layout/display_field/number.tt b/share/skin/default/layout/display_field/number.tt index 1fcad1a..d531087 100644 --- a/share/skin/default/layout/display_field/number.tt +++ b/share/skin/default/layout/display_field/number.tt @@ -1,13 +1,14 @@ =for layout widget -[% content %] +[% label_layout %] +[% value_layout %] -=for layout label +=for layout label_layout -<strong> [% content | html %]: </strong> +<strong > [% label %]: </strong> -=for layout value +=for layout value_layout -[% content | html %] +[% value %] =cut diff --git a/share/skin/default/layout/display_field/related_object.tt b/share/skin/default/layout/display_field/related_object.tt index 1fcad1a..d531087 100644 --- a/share/skin/default/layout/display_field/related_object.tt +++ b/share/skin/default/layout/display_field/related_object.tt @@ -1,13 +1,14 @@ =for layout widget -[% content %] +[% label_layout %] +[% value_layout %] -=for layout label +=for layout label_layout -<strong> [% content | html %]: </strong> +<strong > [% label %]: </strong> -=for layout value +=for layout value_layout -[% content | html %] +[% value %] =cut diff --git a/share/skin/default/layout/display_field/string.tt b/share/skin/default/layout/display_field/string.tt index 831cad4..d531087 100644 --- a/share/skin/default/layout/display_field/string.tt +++ b/share/skin/default/layout/display_field/string.tt @@ -1,13 +1,14 @@ =for layout widget -[% content %] +[% label_layout %] +[% value_layout %] -=for layout label +=for layout label_layout -<strong> [% content | html %]: </strong> +<strong > [% label %]: </strong> -=for layout value +=for layout value_layout -[% content | html %] +[% value %] -=cut
\ No newline at end of file +=cut diff --git a/share/skin/default/layout/display_field/text.tt b/share/skin/default/layout/display_field/text.tt index 831cad4..d531087 100644 --- a/share/skin/default/layout/display_field/text.tt +++ b/share/skin/default/layout/display_field/text.tt @@ -1,13 +1,14 @@ =for layout widget -[% content %] +[% label_layout %] +[% value_layout %] -=for layout label +=for layout label_layout -<strong> [% content | html %]: </strong> +<strong > [% label %]: </strong> -=for layout value +=for layout value_layout -[% content | html %] +[% value %] -=cut
\ No newline at end of file +=cut diff --git a/share/skin/default/layout/object_view.tt b/share/skin/default/layout/object_view.tt index 55b15bf..cec7b4d 100644 --- a/share/skin/default/layout/object_view.tt +++ b/share/skin/default/layout/object_view.tt @@ -2,14 +2,8 @@ [% field_list %] -=for layout field_list - - <p> [% content %] </p> - -=cut - =for layout field - [% content %] <br> + [% call_next %] <br> =cut |