[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:
parent
5be3ac1fd0
commit
e73a3c6898
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue