From cd213d3026076e85446bbe0a04c30363fa468202 Mon Sep 17 00:00:00 2001 From: ppisljar Date: Thu, 29 Jun 2017 11:03:51 +0200 Subject: [PATCH] fixing render complete issue and doulbe rendering with maps --- .../table_vis/public/table_vis.js | 1 - .../tile_map/public/maps_visualization.js | 39 +++++++++---------- src/ui/public/vis/editors/default/default.js | 1 + .../public/vis/vis_types/vislib_vis_type.js | 2 +- src/ui/public/visualize/visualization.js | 5 --- 5 files changed, 20 insertions(+), 28 deletions(-) diff --git a/src/core_plugins/table_vis/public/table_vis.js b/src/core_plugins/table_vis/public/table_vis.js index 51921067b8cd8b..42ed2e5ff2bd3b 100644 --- a/src/core_plugins/table_vis/public/table_vis.js +++ b/src/core_plugins/table_vis/public/table_vis.js @@ -76,7 +76,6 @@ function TableVisTypeProvider(Private) { } ]) }, - implementsRenderComplete: true, hierarchicalData: function (vis) { return Boolean(vis.params.showPartialRows || vis.params.showMeticsAtAllLevels); } diff --git a/src/core_plugins/tile_map/public/maps_visualization.js b/src/core_plugins/tile_map/public/maps_visualization.js index 96f9fe7eb189a2..3b20084fa483d1 100644 --- a/src/core_plugins/tile_map/public/maps_visualization.js +++ b/src/core_plugins/tile_map/public/maps_visualization.js @@ -40,21 +40,23 @@ export function MapsVisualizationProvider(Private, serviceSettings, Notifier, co async render(esResponse) { - if (esResponse && typeof esResponse.geohashGridAgg === 'undefined') { - this._updateParams(); - return; - } + return new Promise((resolve) => { + if (esResponse && typeof esResponse.geohashGridAgg === 'undefined') { + this._updateParams(); + return resolve(); + } - //todo: do render complete! - this._dataDirty = true; - this._kibanaMapReady.then(() => { - this._chartData = esResponse; - this._geohashGeoJson = this._chartData.geoJson; - this._recreateGeohashLayer(); - this._kibanaMap.useUiStateFromVisualization(this.vis); - this._kibanaMap.resize(); - this._dataDirty = false; - this._doRenderComplete(); + //todo: do render complete! + this._dataDirty = true; + this._kibanaMapReady.then(() => { + this._chartData = esResponse; + this._geohashGeoJson = this._chartData.geoJson; + this._recreateGeohashLayer(); + this._kibanaMap.useUiStateFromVisualization(this.vis); + this._kibanaMap.resize(); + this._dataDirty = false; + this._doRenderComplete(resolve); + }); }); } @@ -114,7 +116,6 @@ export function MapsVisualizationProvider(Private, serviceSettings, Notifier, co } else { this._recreateGeohashLayer(); this._dataDirty = false; - this._doRenderComplete(); } }); @@ -127,7 +128,6 @@ export function MapsVisualizationProvider(Private, serviceSettings, Notifier, co }); this._kibanaMap.on('baseLayer:loaded', () => { this._baseLayerDirty = false; - this._doRenderComplete(); }); this._kibanaMap.on('baseLayer:loading', () => { this._baseLayerDirty = true; @@ -236,10 +236,7 @@ export function MapsVisualizationProvider(Private, serviceSettings, Notifier, co }; } - _doRenderComplete() { - - //todo - return; + _doRenderComplete(resolve) { if (this._paramsDirty || this._dataDirty || this._baseLayerDirty) { const mapParams = this._getMapsParams(); @@ -256,7 +253,7 @@ export function MapsVisualizationProvider(Private, serviceSettings, Notifier, co return; } - this.$el.trigger('renderComplete'); + resolve('renderComplete'); } } diff --git a/src/ui/public/vis/editors/default/default.js b/src/ui/public/vis/editors/default/default.js index 5c730ccde0f212..9a52a9025055d8 100644 --- a/src/ui/public/vis/editors/default/default.js +++ b/src/ui/public/vis/editors/default/default.js @@ -30,6 +30,7 @@ const defaultEditor = function ($rootScope, $compile) { $scope.visData = visData; $scope.uiState = this.vis.getUiState(); $scope.searchSource = searchSource; + $scope.$apply(); }; return new Promise(resolve => { diff --git a/src/ui/public/vis/vis_types/vislib_vis_type.js b/src/ui/public/vis/vis_types/vislib_vis_type.js index 13f1817c1bfb81..8cb3fa6328334d 100644 --- a/src/ui/public/vis/vis_types/vislib_vis_type.js +++ b/src/ui/public/vis/vis_types/vislib_vis_type.js @@ -39,7 +39,7 @@ export function VislibVisTypeProvider(Private) { } resize() { - this.render(this._response); + return this.render(this._response); } destroy() { diff --git a/src/ui/public/visualize/visualization.js b/src/ui/public/visualize/visualization.js index 9dc8e2efe9bd8e..54e0410e7488e7 100644 --- a/src/ui/public/visualize/visualization.js +++ b/src/ui/public/visualize/visualization.js @@ -131,11 +131,6 @@ uiModules resizeChecker.on('resize', resizeFunction); - $scope.$watch('visData', () => { - $scope.$broadcast('render'); - }); - - function jQueryGetter(selector) { return function () { const $sel = $el.find(selector);