diff options
| author | Mathieu Duckerts-Antoine <dam@odoo.com> | 2019-03-12 13:23:06 +0000 |
|---|---|---|
| committer | Mathieu Duckerts-Antoine <dam@odoo.com> | 2019-04-01 14:38:44 +0000 |
| commit | 863de16a9189364d456ff36fa748ed85c8a80144 (patch) | |
| tree | 410466181a66d829bbb22454f501059e829dd224 /addons/web/static/src | |
| parent | a742279ad27f221326f8823f55ac6eaa2eb3856c (diff) | |
[FIX] web: correctly update this.widgets
Old subwidgets of a widget inhereriting from BasicRender were not
correctly destroyed. This was the cause of various problems when
cycling over this.widgets.
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_renderer.js | 3 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/kanban/kanban_renderer.js | 3 |
2 files changed, 3 insertions, 3 deletions
diff --git a/addons/web/static/src/js/views/basic/basic_renderer.js b/addons/web/static/src/js/views/basic/basic_renderer.js index 2bc63f47073..6f5fa263ba8 100644 --- a/addons/web/static/src/js/views/basic/basic_renderer.js +++ b/addons/web/static/src/js/views/basic/basic_renderer.js @@ -510,12 +510,15 @@ var BasicRenderer = AbstractRenderer.extend({ var oldAllFieldWidgets = this.allFieldWidgets; this.allFieldWidgets = {}; // TODO maybe merging allFieldWidgets and allModifiersData into "nodesData" in some way could be great this.allModifiersData = []; + var oldWidgets = this.widgets; + this.widgets = []; return this._renderView().then(function () { _.each(oldAllFieldWidgets, function (recordWidgets) { _.each(recordWidgets, function (widget) { widget.destroy(); }); }); + _.invoke(oldWidgets, 'destroy'); }); }, /** diff --git a/addons/web/static/src/js/views/kanban/kanban_renderer.js b/addons/web/static/src/js/views/kanban/kanban_renderer.js index c69632129cd..4c5326f755b 100644 --- a/addons/web/static/src/js/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/js/views/kanban/kanban_renderer.js @@ -396,8 +396,6 @@ var KanbanRenderer = BasicRenderer.extend({ */ _renderView: function () { var self = this; - var oldWidgets = this.widgets; - this.widgets = []; // render the kanban view var isGrouped = !!this.state.groupedBy.length; @@ -418,7 +416,6 @@ var KanbanRenderer = BasicRenderer.extend({ self.$el.toggleClass('o_kanban_ungrouped', !isGrouped); self.$el.append(fragment); self._toggleNoContentHelper(); - _.invoke(oldWidgets, 'destroy'); if (self._isInDom) { _.invoke(self.widgets, 'on_attach_callback'); } |
