--- trunk/lib/Strix/View/User.pm 2008/07/10 17:27:58 86 +++ trunk/lib/Strix/View/User.pm 2008/07/10 20:00:54 89 @@ -1,6 +1,7 @@ package Strix::View::User; use Data::Dump qw/dump/; +use Carp qw/carp/; use metaclass 'Moose::Meta::Class' => ( attribute_metaclass => 'Continuity::Meta::Attribute::FormField' @@ -77,45 +78,58 @@ sub render_edit { my $self = shift; - warn "# render_edit ",$self->id," ",$self->uuid; - $self->render_iterator( - qq|
|, - sub { - #warn "# edit render_iterator ",dump( @_ ); - my ( $name, $field_name, $label, $val ) = @_; - return if $name =~ /^_/; - return qq| -
-
$label
-
- -
+ warn "# render_edit ",$self->id," ",$self->uuid, " ", $self->_layout, "\n"; + my $out = $self->render_iterator( sub { + #warn "# edit render_iterator ",dump( @_ ); + my ( $name, $field_name, $label, $val ) = @_; + return if $name =~ /^_/; + return qq| + + $label + + + + + | if $self->_layout eq 'table'; + return qq| +
+
$label
+
+
- |; - }, - qq|
| - ); +
+ |; + }); + $self->render_wrapper_class( $out, 'editform' ); } sub render_view { my $self = shift; - warn "# render_view ",$self->id," ",$self->uuid; - $self->render_iterator( - qq|
|, - sub { - #warn "# view render_iterator ",dump( @_ ); - my ( $name, $field_name, $label, $val ) = @_; - return if $name =~ /^_/; - return qq| -
-
$label
-
$val
-
+ warn "# render_view ",$self->id," ",$self->uuid," ", $self->_layout,"\n"; + my $out = $self->render_iterator( sub { + #warn "# view render_iterator ",dump( @_ ); + my ( $name, $field_name, $label, $val ) = @_; + return if $name =~ /^_/; + return qq|$label$val| if $self->_layout eq 'table'; + return qq| +
+
$label
+
$val
- |; - }, - qq|
| - ); +
+ |; + }); + $self->render_wrapper_class( $out, 'view' ); +} + +sub render_wrapper_class { + my ( $self, $out, $class ) = @_; + if ( length($out) == 0 ) { + carp "no output, skipping"; + return ''; + } + return $out . qq|| . $self->render_buttons . qq|| if $self->_layout eq 'table'; + return qq|
| . $out . $self->render_buttons . qq|
|; } use Data::Dump qw/dump/; @@ -137,15 +151,20 @@ } -has _foo => ( - is => 'rw', - label => 'Foo', -); - has _fey => ( is => 'rw', label => 'Fey object', isa => 'Strix::User', ); +use Moose::Util::TypeConstraints; + +enum 'Layouts' => qw( div table ); + +has _layout => ( + is => 'rw', + isa => 'Layouts', + default => 'div', +); + 1;