diff options
Diffstat (limited to 'lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm')
-rw-r--r-- | lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm b/lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm index df10970..64752a6 100644 --- a/lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm +++ b/lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm @@ -5,44 +5,42 @@ use Reaction::Role; use aliased 'Reaction::InterfaceModel::Collection'; # XX This needs to be consumed after Ordered -role Pager, which { +use namespace::clean -except => [ qw(meta) ]; - #has paged_collection => (isa => Collection, is => 'rw', lazy_build => 1); - 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); +#has paged_collection => (isa => Collection, is => 'rw', lazy_build => 1); - implements _build_page => as { 1 }; - implements _build_per_page => as { 10 }; - implements _build_per_page_max => as { 100 }; +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); +sub _build_page { 1 }; +sub _build_per_page { 10 }; +sub _build_per_page_max { 100 }; +sub _build_pager { shift->current_collection->pager }; +sub adopt_page { + my ($self) = @_; + #$self->clear_paged_collection; - implements _build_pager => as { shift->current_collection->pager }; - - implements adopt_page => as { - my ($self) = @_; - #$self->clear_paged_collection; + $self->clear_pager; + $self->clear_current_collection; +}; - $self->clear_pager; - $self->clear_current_collection; - }; +around accept_events => sub { ('page','per_page', shift->(@_)); }; - around accept_events => sub { ('page','per_page', shift->(@_)); }; +#implements build_paged_collection => as { +# my ($self) = @_; +# my $collection = $self->current_collection; +# return $collection->where(undef, {rows => $self->per_page})->page($self->page); +#}; - #implements build_paged_collection => as { - # my ($self) = @_; - # my $collection = $self->current_collection; - # return $collection->where(undef, {rows => $self->per_page})->page($self->page); - #}; +around _build_current_collection => sub { + my $orig = shift; + my ($self) = @_; + my $collection = $orig->(@_); + return $collection->where(undef, {rows => $self->per_page})->page($self->page); +}; - around _build_current_collection => sub { - my $orig = shift; - my ($self) = @_; - my $collection = $orig->(@_); - return $collection->where(undef, {rows => $self->per_page})->page($self->page); - }; -}; 1; |