diff options
author | matthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2009-02-10 20:58:57 +0000 |
---|---|---|
committer | matthewt <matthewt@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7> | 2009-02-10 20:58:57 +0000 |
commit | cf6fb234d0c47cf05376d6724a401ff8400e3ba5 (patch) | |
tree | bab1ce6298d499e0f06501ee3c5f7e608ab6790a | |
parent | c19feb34aee0afa886eb2fb8abf8f07090c03b76 (diff) | |
download | reaction-cf6fb234d0c47cf05376d6724a401ff8400e3ba5.tar.gz reaction-cf6fb234d0c47cf05376d6724a401ff8400e3ba5.zip |
add clearers for order and pager listview roles
-rw-r--r-- | lib/Reaction/UI/ViewPort/Collection/Role/Order.pm | 8 | ||||
-rw-r--r-- | lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/Reaction/UI/ViewPort/Collection/Role/Order.pm b/lib/Reaction/UI/ViewPort/Collection/Role/Order.pm index 0121605..bb19f05 100644 --- a/lib/Reaction/UI/ViewPort/Collection/Role/Order.pm +++ b/lib/Reaction/UI/ViewPort/Collection/Role/Order.pm @@ -5,13 +5,19 @@ use Reaction::Role; use namespace::clean -except => [ qw(meta) ]; -has order_by => (isa => 'Str', is => 'rw', trigger_adopt('order_by')); +has order_by => (isa => 'Str', is => 'rw', trigger_adopt('order_by'), clearer => 'clear_order_by'); has order_by_desc => (isa => 'Int', is => 'rw', trigger_adopt('order_by'), lazy_build => 1); sub _build_order_by_desc { 0 }; sub adopt_order_by { shift->clear_current_collection; }; +after clear_order_by => sub { + my ($self) = @_; + $self->order_by_desc(0); + $self->clear_current_collection; +}; + around _build_current_collection => sub { my $orig = shift; my ($self) = @_; diff --git a/lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm b/lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm index 64752a6..5f7c8f2 100644 --- a/lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm +++ b/lib/Reaction/UI/ViewPort/Collection/Role/Pager.pm @@ -11,7 +11,7 @@ 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 page => (isa => 'Int', is => 'rw', lazy_build => 1, trigger_adopt('page'), clearer => 'clear_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 }; @@ -26,6 +26,12 @@ sub adopt_page { $self->clear_current_collection; }; +after clear_page => sub { + my ($self) = @_; + $self->clear_pager; + $self->clear_current_collection; +}; + around accept_events => sub { ('page','per_page', shift->(@_)); }; #implements build_paged_collection => as { |