has pager => (isa => 'Data::Page', is => 'rw', lazy_build => 1);
has page => (isa => 'Int', is => 'rw', lazy_build => 1, trigger_adopt('page'));
has per_page => (isa => 'Int', is => 'rw', lazy_build => 1, trigger_adopt('page'));
+ has per_page_max => (isa => 'Int', is => 'rw', lazy_build => 1);
- implements build_page => as { 1 };
- implements build_per_page => as { 10 };
+ implements _build_page => as { 1 };
+ implements _build_per_page => as { 10 };
+ implements _build_per_page_max => as { 100 };
- implements build_pager => as { shift->current_collection->pager };
+ implements _build_pager => as { shift->current_collection->pager };
implements adopt_page => as {
my ($self) = @_;
#$self->clear_paged_collection;
- $self->clear_current_collection;
+
$self->clear_pager;
+ $self->clear_current_collection;
};
- around accept_events => sub { ('page', shift->(@_)); };
+ around accept_events => sub { ('page','per_page', shift->(@_)); };
#implements build_paged_collection => as {
# my ($self) = @_;
# return $collection->where(undef, {rows => $self->per_page})->page($self->page);
#};
- around build_current_collection => sub {
+ around _build_current_collection => sub {
my $orig = shift;
my ($self) = @_;
my $collection = $orig->(@_);