Can page to first, prev, next, last.

This commit is contained in:
barnold 2022-09-17 16:03:05 +01:00
parent adadecc88b
commit 143dcc9bdc
3 changed files with 22 additions and 8 deletions

View File

@ -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
);
}

View File

@ -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);

View File

@ -6,10 +6,24 @@ Book count is <%= $book_count %>.
<p/>
<div>
% for my $book ($page->all) {
% for my $book ($book_page->all) {
<%= $book->name %><br/>
% }
</div>
<p/>
<%= 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 } %>