Merge lp:~openerp-dev/openerp-web/7.0-opw-599269-msh into lp:openerp-web/7.0

Proposed by Mohammed Shekha(Open ERP)
Status: Merged
Merged at revision: 4150
Proposed branch: lp:~openerp-dev/openerp-web/7.0-opw-599269-msh
Merge into: lp:openerp-web/7.0
Diff against target: 32 lines (+14/-1)
1 file modified
addons/web/static/src/js/view_list.js (+14/-1)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/7.0-opw-599269-msh
Reviewer Review Type Date Requested Status
Martin Trigaux (OpenERP) (community) Approve
Alexandre Fayolle - camptocamp (community) code review, test Approve
Nicolas Vanhoren (OpenERP) Pending
Xavier (Open ERP) Pending
Review via email: mp+193027@code.launchpad.net

Description of the change

Hello,

Fixed the issue of pager, there is inconsistency with pager, display of next page is impossible if records are deleted such that dataset size becomes less than or equals to limit, also if all records of current page is deleted then it does not navigate to previous page.

Demo:- To reproduce this issue go through following bug report description.

https://bugs.launchpad.net/openerp-web/+bug/1239851

There are many scenarios related to pager which shows issue with current pager.

Thanks.

To post a comment you must log in.
Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

LGTM

review: Approve (code review, test)
Revision history for this message
Martin Trigaux (OpenERP) (mat-openerp) wrote :

Hello,

Thanks Mohammed for the fix and thanks Alexandre for the review. That looks good to me too. Merged in 7.0

revno: 4150 [merge]
revision-id: <email address hidden>

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/static/src/js/view_list.js'
2--- addons/web/static/src/js/view_list.js 2013-10-28 14:16:47 +0000
3+++ addons/web/static/src/js/view_list.js 2013-10-29 09:44:50 +0000
4@@ -403,6 +403,9 @@
5 if (total) {
6 var range_start = this.page * limit + 1;
7 var range_stop = range_start - 1 + limit;
8+ if (this.records.length) {
9+ range_stop = range_start - 1 + this.records.length;
10+ }
11 if (range_stop > total) {
12 range_stop = total;
13 }
14@@ -597,7 +600,17 @@
15 _(ids).each(function (id) {
16 self.records.remove(self.records.get(id));
17 });
18- self.configure_pager(self.dataset);
19+ if (self.records.length == 0 && self.dataset.size() > 0) {
20+ //Trigger previous manually to navigate to previous page,
21+ //If all records are deleted on current page.
22+ self.$pager.find('ul li:first a').trigger('click');
23+ } else if (self.dataset.size() == self.limit()) {
24+ //Reload listview to update current page with next page records
25+ //because pager going to be hide if dataset.size == limit
26+ self.reload();
27+ } else {
28+ self.configure_pager(self.dataset);
29+ }
30 self.compute_aggregates();
31 });
32 },