--- trunk/lib/Frey/ObjectBrowser.pm 2008/07/08 12:20:08 60 +++ trunk/lib/Frey/ObjectBrowser.pm 2008/07/14 21:45:59 123 @@ -1,8 +1,14 @@ package Frey::ObjectBrowser; use Moose; -use MooseX::Method; extends 'Frey'; +with 'Frey::Web'; + +has 'fey_class' => ( + is => 'rw', + isa => 'Str', + required => 1, +); my @callbacks; @@ -21,22 +27,121 @@ } } -use Data::Dumper; -$Data::Dumper::Deparse = 1; +#use Data::Dumper; +#$Data::Dumper::Deparse = 1; +use Data::Dump qw/dump/; + +use Frey::Web::Item; +use Frey::Web::Links; -#method 'html' => positional( -# isa => 'Continuity::RequestHolder', -# required => 1, -#) => sub { sub html { my ( $self, $req ) = @_; - my $params = $req->param; - warn Dumper( $params ); + my $f = { $req->params }; + my $layout = delete( $f->{layout} ) || 'div'; + + my @w; + my $pager; + + while ( 1 ) { + + warn "<<< GOT REQUEST ",dump( $f ); + + # re-apply (changed?) layout to elements + if ( defined $f->{layout} ) { + $layout = delete( $f->{layout} ); + warn "# new layout = $layout\n"; + } + + if ( ! @w || $f->{page} || $f->{per_page} ) { + my $s; + ( $s, $pager ) = $self->fey_class->collection( $f ); + warn "# s ",$self->fey_class," = ",dump( $s ) if $self->debug; + + @w = (); + + while ( my $u = $s->next ) { + my $w = Frey::Web::CRUD->new( fey_class => $self->fey_class, fey => $u, layout => $layout ); + warn "# w = ",dump( $w ) if $self->debug; + push @w, $w; + } + + warn "# got $#w elements: ",dump( map { $_->id } @w ), " from total of ", $s->handle->rows; + } + + my $rows_delimiter = ''; + $rows_delimiter = '