[FIX] Web: view_list.js: pager next and previous actions

When the number of records n and the limit l were such that n%l = 0
(e.g. 16 records total, 8 displayed per page), clicking on the
previous button on the first page, or on the next button on the
last page produced a bug because the total number of pages
computed for this edge case was incorrect.
This commit is contained in:
Aaron Bohy 2015-02-25 09:13:41 +01:00
parent 5be3ac1fd0
commit e73a3c6898
1 changed files with 10 additions and 7 deletions

View File

@ -294,21 +294,24 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.$pager
.on('click', 'a[data-pager-action]', function () {
var $this = $(this);
var max_page = Math.floor(self.dataset.size() / self.limit());
var max_page_index = Math.ceil(self.dataset.size() / self.limit()) - 1;
switch ($this.data('pager-action')) {
case 'first':
self.page = 0; break;
self.page = 0;
break;
case 'last':
self.page = max_page - 1;
self.page = max_page_index;
break;
case 'next':
self.page += 1; break;
self.page += 1;
break;
case 'previous':
self.page -= 1; break;
self.page -= 1;
break;
}
if (self.page < 0) {
self.page = max_page;
} else if (self.page > max_page) {
self.page = max_page_index;
} else if (self.page > max_page_index) {
self.page = 0;
}
self.reload_content();