Make rows-per-page a user preference.

This commit is contained in:
barnold 2022-09-19 11:50:01 +01:00
parent 6ea53c5657
commit 2ac594269d
5 changed files with 24 additions and 5 deletions

View File

@ -59,7 +59,8 @@ sub startup ($self) {
return undef;
}
);
$auth->get('/account')->to('auth#account');
$auth->get('/account')->to('auth#account')->name('account');
$auth->post('/preferences')->to('auth#preferences')->name('preferences');
}
1;

View File

@ -26,4 +26,12 @@ sub logout ($self) {
$self->redirect_to('home');
}
sub preferences ($self) {
$self->session(rows_per_page => $self->param('rows_per_page'));
$self->flash(
confirmation => sprintf("Updated rows per page to %s.", $self->rpp)
);
$self->redirect_to('account');
}
1;

View File

@ -13,7 +13,7 @@ sub get_page ($self, $page_number = 1, $name_like = undef) {
{ prefetch => [ "books" ],
order_by => [ "me.name " ],
page => $page_number,
rows => 10,
rows => $self->rows_per_page,
},
);
return $rs;

View File

@ -1,8 +1,10 @@
<p/>
Page <%= commify($pager->current_page) %>
Showing <%= $pager->entries_on_this_page %> items
on page <%= commify($pager->current_page) %>
of <%= commify($pager->last_page) %>
&nbsp;&nbsp;&nbsp;
<% if ($pager->total_entries > rpp) { %>
<br/>
<%= link_to url_with(page_number => 1) => begin %>◄ First<% end %>
% if (my $prev = $pager->previous_page) {
@ -18,3 +20,4 @@ Next ►
% }
<%= link_to url_with(page_number => $pager->last_page) => begin %>Last ►<% end %>
<% } %>

View File

@ -2,4 +2,11 @@
% title 'Account';
<h1><%= logname %>'s account on MyApp</h1>
Account details here.
%= form_for preferences => begin
%= label_for rows_per_page => 'Rows per page'
<%= number_field rows_per_page => $c->rpp,
min => 5, max => 100, maxlength => 4, size => 4 %>
%= submit_button "Update"
% end
<p/>
%= flash('confirmation')