--- trunk/lib/Frey/ObjectBrowser.pm 2008/07/08 12:20:08 60 +++ trunk/lib/Frey/ObjectBrowser.pm 2008/10/31 19:51:51 213 @@ -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,67 @@ } } -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; +use Frey::Pager; -#method 'html' => positional( -# isa => 'Continuity::RequestHolder', -# required => 1, -#) => sub { -sub html { +sub request { my ( $self, $req ) = @_; - my $params = $req->param; - warn Dumper( $params ); + $self->add_head( 'static/form.css' ); + my @w; + + my $f = { $req->params }; + + my $pager; + + while ( 1 ) { + + warn "<<< GOT REQUEST ",dump( $f ); + + $pager = Frey::Pager->new( + fey_class => $self->fey_class, + item_constructor => sub { + Frey::Web::CRUD->new( fey_class => $self->fey_class, @_ ); + }, + ) if ! $pager; + + $pager->pager->current_page( $f->{page} ) if $f->{page}; + $pager->pager->entries_per_page( $f->{pre_page} ) if $f->{per_page}; + + $pager->update_collection; - $req->print( Dumper( $params ) ); + my $last = $pager->last_item; + + if ( $last->fey ) { + warn "+++ add item widget\n"; + $pager->add_item( $pager->item_constructor->( render_as => 'edit' )); + } + + my $form = $pager->items_in_layout( $f ); + $form = $last->render_table_wrapper( $form ); + + my $html = $self->page( + body => '

' . $self->fey_class . '

' + . $last->layout_picker # FIXME ugly + . $pager->render_pager + . qq|
$form
| + ); + + warn ">>> ",length( $html ),"\n"; + + $req->print( $html ); + $req->next; + +# process_links( $req ); + $f = { $req->params }; + } - $req->next; + warn "NO WAY OUT!"; }; 1;