From 86252428846607cd5f4b18cef8de49a8cd0b151a Mon Sep 17 00:00:00 2001 From: qsm-odoo Date: Wed, 16 Nov 2016 16:40:10 +0100 Subject: [PATCH] [FIX] web: properly destroy nvtooltips when switching views If the graph view was left while a nvtooltip was shown (thanks to keyboard shortcuts or during loading time), the nvtooltip remained and was only destroyed when leaving the action. Now they are automatically removed with the view as they are now placed inside of them instead of inside the body element. --- addons/web/static/src/css/base.css | 4 ++++ addons/web/static/src/css/base.sass | 3 +++ addons/web/static/src/js/views/graph_widget.js | 11 +++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 4a2d5f81bb2..eed068c4931 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -3056,3 +3056,7 @@ body { white-space: nowrap; padding-left: 10px; } + +.nvtooltip thead { + background-color: transparent; +} diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 7ba9e6bece3..37ac418816d 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -2605,3 +2605,6 @@ body width: 100px white-space: nowrap padding-left: 10px + +.nvtooltip thead + background-color: transparent diff --git a/addons/web/static/src/js/views/graph_widget.js b/addons/web/static/src/js/views/graph_widget.js index d0cd362487d..73b9c6be406 100644 --- a/addons/web/static/src/js/views/graph_widget.js +++ b/addons/web/static/src/js/views/graph_widget.js @@ -97,7 +97,8 @@ return Widget.extend({ "there is no active filter in the search bar."), })); } else { - this['display_' + this.mode](); + var chart = this['display_' + this.mode](); + chart.tooltip.chartContainer(this.$el[0]); } }, display_bar: function () { @@ -181,6 +182,8 @@ return Widget.extend({ chart(svg); this.to_remove = chart.update; nv.utils.onWindowResize(chart.update); + + return chart; }, display_pie: function () { var data = [], @@ -231,6 +234,8 @@ return Widget.extend({ chart(svg); this.to_remove = chart.update; nv.utils.onWindowResize(chart.update); + + return chart; }, display_line: function () { if (this.data.length < 2) { @@ -308,7 +313,9 @@ return Widget.extend({ chart(svg); this.to_remove = chart.update; - nv.utils.onWindowResize(chart.update); + nv.utils.onWindowResize(chart.update); + + return chart; }, destroy: function () { nv.utils.offWindowResize(this.to_remove);