--- trunk/lib/Frey/ObjectBrowser.pm 2008/07/13 16:15:45 110 +++ trunk/lib/Frey/ObjectBrowser.pm 2008/07/13 16:17:34 111 @@ -32,6 +32,7 @@ use Data::Dump qw/dump/; use Frey::Web::Row; +use Frey::Web::Links; sub html { my ( $self, $req ) = @_; @@ -40,6 +41,7 @@ my $layout = delete( $f->{layout} ) || 'div'; my @w; + my $pager; while ( 1 ) { @@ -51,8 +53,9 @@ warn "# new layout = $layout\n"; } - if ( ! @w || $f->{limit} || $f->{offset} ) { - my $s = $self->fey_class->collection( $f ); + 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 = (); @@ -63,7 +66,7 @@ push @w, $w; } - warn "# got $#w elements: ",dump( map { $_->id } @w ); + warn "# got $#w elements: ",dump( map { $_->id } @w ), " from total of ", $s->handle->rows; } my $rows_delimiter = ''; @@ -93,16 +96,30 @@ $form = qq|$header$form
|; } - my $layout_picker = join(' ', - qq|
layout:|, - map { - if ( $layout eq $_ ) { - qq|$_|; - } else { - qq|$_|; - } - } ( 'div', 'table', 'columns' ), - qq|
|, + my $layout_picker = + qq|
layout: | . + Frey::Web::Links->new( + name => 'layout', + current => $layout, + values => [ 'div', 'table', 'columns' ], + )->links . + qq|
| + ; + + my $pager = join( ' ', + qq|
|, + 'Showing', + $pager->first, '-', $pager->last, + 'of', + $pager->total_entries, + 'results
', +# 'page', $pager->current_page, '/', $pager->last_page, + Frey::Web::Links->new( + name => 'page', + current => $pager->current_page, + values => [ $pager->first_page .. $pager->last_page ], + )->links, + qq|
| ); my $html = dom2html( @@ -113,6 +130,7 @@ body => [ h1 => [ $self->fey_class ], $layout_picker, + $pager, form => { method=>'post' } => [ $form, ],