diff options
-rw-r--r-- | lib/Reaction/UI/Controller/Collection.pm | 4 | ||||
-rw-r--r-- | lib/Reaction/UI/Controller/Collection/CRUD.pm | 2 | ||||
-rw-r--r-- | lib/Reaction/UI/Widget/ListView.pm | 7 | ||||
-rw-r--r-- | share/skin/default/layout/list_view.tt | 4 |
4 files changed, 13 insertions, 4 deletions
diff --git a/lib/Reaction/UI/Controller/Collection.pm b/lib/Reaction/UI/Controller/Collection.pm index 683473e..265ff79 100644 --- a/lib/Reaction/UI/Controller/Collection.pm +++ b/lib/Reaction/UI/Controller/Collection.pm @@ -5,7 +5,7 @@ use warnings; use base 'Reaction::UI::Controller'; use Reaction::Class; -use aliased 'Reaction::UI::ViewPort::ListView'; +use aliased 'Reaction::UI::ViewPort::Collection::Grid'; use aliased 'Reaction::UI::ViewPort::Object'; has 'model_name' => (isa => 'Str', is => 'rw', required => 1); @@ -16,7 +16,7 @@ has action_viewport_args => (isa => 'HashRef', is => 'rw', lazy_build => 1); sub _build_action_viewport_map { return { - list => ListView, + list => Grid, view => Object, }; } diff --git a/lib/Reaction/UI/Controller/Collection/CRUD.pm b/lib/Reaction/UI/Controller/Collection/CRUD.pm index a44054c..ab0fc9b 100644 --- a/lib/Reaction/UI/Controller/Collection/CRUD.pm +++ b/lib/Reaction/UI/Controller/Collection/CRUD.pm @@ -6,9 +6,11 @@ use base 'Reaction::UI::Controller::Collection'; use Reaction::Class; use aliased 'Reaction::UI::ViewPort::Action'; +use aliased 'Reaction::UI::ViewPort::ListView'; sub _build_action_viewport_map { my $map = shift->next::method(@_); + $map->{list} = ListView; $map->{$_} = Action for qw/create update delete delete_all/; return $map; } diff --git a/lib/Reaction/UI/Widget/ListView.pm b/lib/Reaction/UI/Widget/ListView.pm index baf6105..ab041e6 100644 --- a/lib/Reaction/UI/Widget/ListView.pm +++ b/lib/Reaction/UI/Widget/ListView.pm @@ -8,6 +8,13 @@ class ListView is 'Reaction::UI::Widget::Collection::Grid', which { arg pager_obj => $_{viewport}->pager; }; + implements fragment pager_fragment { + my $pager = $_{pager_obj}; + if( $pager->last_page > $pager->first_page ) { + render 'pager'; + } + }; + implements fragment actions { render action => over $_{viewport}->actions; }; diff --git a/share/skin/default/layout/list_view.tt b/share/skin/default/layout/list_view.tt index f4f6501..f7a4ef4 100644 --- a/share/skin/default/layout/list_view.tt +++ b/share/skin/default/layout/list_view.tt @@ -2,11 +2,11 @@ =for layout widget -[% pager %] +[% pager_fragment %] [% call_next %] -[% pager %] +[% pager_fragment %] [% actions %] |