diff --git a/lib/MyApp/Controller/Book.pm b/lib/MyApp/Controller/Book.pm index 17fb250..b6bed6d 100644 --- a/lib/MyApp/Controller/Book.pm +++ b/lib/MyApp/Controller/Book.pm @@ -4,11 +4,11 @@ use MyModel::Book; sub index ($self) { my $page_number = $self->param('page_number') // 1; - my $bm = MyModel::Book->new; + my $book_model = MyModel::Book->new; + my $book_page = $book_model->get_page($page_number); $self->render( - book_count => $bm->count_all, - page => $bm->get_page($page_number), - page_number => $page_number, + book_count => $book_model->count_all, + book_page => $book_page ); } diff --git a/t/basic.t b/t/basic.t index e11589e..45e9cef 100644 --- a/t/basic.t +++ b/t/basic.t @@ -7,11 +7,11 @@ my $t = Test::Mojo->new('MyApp'); $t->get_ok('/')->status_is(200)->content_like(qr/home/i); $t->get_ok('/about')->status_is(200)->content_like(qr/about/i); # No way to follow the redirect? -$t->get_ok('/book')->status_is(302); +$t->get_ok('/account')->status_is(302); $t->get_ok('/auth')->status_is(200)->content_like(qr/login/i); $t->post_ok('/login' => form => { logname => 'Dobby' }); $t->get_ok('/')->status_is(200)->content_like(qr/dobby/i); -$t->get_ok('/book')->status_is(200)->content_like(qr/book count/i); +$t->get_ok('/book/page/1')->status_is(200)->content_like(qr/book count/i); $t->get_ok('/logout')->status_is(302); # Can't do "content_unlike()" so check it offers login now. $t->get_ok('/')->status_is(200)->content_like(qr/login/i); diff --git a/templates/book/index.html.ep b/templates/book/index.html.ep index 47865c9..78f0bea 100644 --- a/templates/book/index.html.ep +++ b/templates/book/index.html.ep @@ -6,10 +6,24 @@ Book count is <%= $book_count %>.

-% for my $book ($page->all) { +% for my $book ($book_page->all) { <%= $book->name %>
% }

-<%= link_to 'More' => book_page => { page_number => $page_number + 1 } %> +<%= link_to '◄ First' => book_page => { page_number => 1 } %> + +% if (my $prev = $book_page->pager->previous_page) { +<%= link_to '◄ Prev' => book_page => { page_number => $prev } %> +% } else { +◄ Prev +% } + +% if (my $next = $book_page->pager->next_page) { +<%= link_to 'Next ►' => book_page => { page_number => $next } %> +% } else { +Next ► +% } + +<%= link_to 'Last ►' => book_page => { page_number => $book_page->pager->last_page } %>