summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views
diff options
context:
space:
mode:
authorMathieu Duckerts-Antoine <dam@odoo.com>2019-03-12 13:23:06 +0000
committerMathieu Duckerts-Antoine <dam@odoo.com>2019-04-01 14:38:44 +0000
commit863de16a9189364d456ff36fa748ed85c8a80144 (patch)
tree410466181a66d829bbb22454f501059e829dd224 /addons/web/static/src/js/views
parenta742279ad27f221326f8823f55ac6eaa2eb3856c (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/js/views')
-rw-r--r--addons/web/static/src/js/views/basic/basic_renderer.js3
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_renderer.js3
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');
}