diff options
| author | Christophe Simonis <chs@odoo.com> | 2018-05-04 13:19:12 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2018-05-04 13:19:12 +0200 |
| commit | 4e90a676da47ccbeacb3d5d2760b94a0f53bafc3 (patch) | |
| tree | 6363f2d8dd9019caaa667ba9000f619f0ced26fe /addons/web/static/src | |
| parent | 55ce6aff10b7b65650cfa114222333b86b4ef8d5 (diff) | |
| parent | 4b7f4f32ea6ec0d9a0a770d3095c8c2f2e112827 (diff) | |
[MERGE] forward port branch 10.0 up to 4b7f4f32ea6
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views/list_view.js | 8 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/list_view_editable.js | 11 |
2 files changed, 18 insertions, 1 deletions
diff --git a/addons/web/static/src/js/views/list_view.js b/addons/web/static/src/js/views/list_view.js index d875714afd2..1a60911845b 100644 --- a/addons/web/static/src/js/views/list_view.js +++ b/addons/web/static/src/js/views/list_view.js @@ -315,7 +315,7 @@ var ListView = View.extend({ this._limit = new_state.limit; this.current_min = new_state.current_min; - this.reload_content().then(function() { + this.reload_content_when_ready().then(function() { // Reset the scroll position to the top on page changed only if (!limit_changed) { self.set_scrollTop(0); @@ -452,6 +452,12 @@ var ListView = View.extend({ }); return reloaded.promise(); }), + /** + * Proxy allowing override when reload_content can't be called directly + */ + reload_content_when_ready: function() { + return this.reload_content.apply(this, arguments); + }, reload: function () { return this.reload_content(); }, diff --git a/addons/web/static/src/js/views/list_view_editable.js b/addons/web/static/src/js/views/list_view_editable.js index 42987a64af1..8b00fc87ead 100644 --- a/addons/web/static/src/js/views/list_view_editable.js +++ b/addons/web/static/src/js/views/list_view_editable.js @@ -401,6 +401,17 @@ ListView.include(/** @lends instance.web.ListView# */{ return cells; }, /** + * Prevent reloading content while an ongoing save + */ + reload_content_when_ready: function() { + var self = this; + var self_super = this._super; + var original_arguments = arguments; + return this.saving_mutex.exec(function() { + return self_super.apply(self, original_arguments); + }); + }, + /** * If currently editing a row, resizes all registered form fields based * on the corresponding row cell */ |
