diff --git a/src/legacy/core_plugins/kibana/public/visualize/np_ready/editor/editor.js b/src/legacy/core_plugins/kibana/public/visualize/np_ready/editor/editor.js index c5325ca3108b4..64cbfb869ebdb 100644 --- a/src/legacy/core_plugins/kibana/public/visualize/np_ready/editor/editor.js +++ b/src/legacy/core_plugins/kibana/public/visualize/np_ready/editor/editor.js @@ -413,6 +413,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState stateContainer ); vis.uiState = persistedState; + vis.uiState.on('reload', embeddableHandler.reload); $scope.uiState = persistedState; $scope.savedVis = savedVis; $scope.query = initialState.query; @@ -560,6 +561,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState $scope.eventEmitter.off('apply', _applyVis); unsubscribePersisted(); + vis.uiState.off('reload', embeddableHandler.reload); unsubscribeStateUpdates(); stopAllSyncing(); diff --git a/src/legacy/core_plugins/vis_type_timeseries/public/components/vis_editor.js b/src/legacy/core_plugins/vis_type_timeseries/public/components/vis_editor.js index b4845696fc8c0..008d83f57a26d 100644 --- a/src/legacy/core_plugins/vis_type_timeseries/public/components/vis_editor.js +++ b/src/legacy/core_plugins/vis_type_timeseries/public/components/vis_editor.js @@ -74,6 +74,8 @@ export class VisEditor extends Component { handleUiState = (field, value) => { this.props.vis.uiState.set(field, value); + // reload visualization because data might need to be re-fetched + this.props.vis.uiState.emit('reload'); }; updateVisState = debounce(() => { diff --git a/src/legacy/core_plugins/visualizations/public/np_ready/public/embeddable/visualize_embeddable.ts b/src/legacy/core_plugins/visualizations/public/np_ready/public/embeddable/visualize_embeddable.ts index 8ea92dfd0f2b4..fbf96d9afde9f 100644 --- a/src/legacy/core_plugins/visualizations/public/np_ready/public/embeddable/visualize_embeddable.ts +++ b/src/legacy/core_plugins/visualizations/public/np_ready/public/embeddable/visualize_embeddable.ts @@ -65,6 +65,7 @@ export interface VisualizeInput extends EmbeddableInput { vis?: { colors?: { [key: string]: string }; }; + table?: unknown; appState?: { save(): void }; uiState?: PersistedState; } @@ -84,7 +85,7 @@ export class VisualizeEmbeddable extends Embeddable; private subscriptions: Subscription[] = []; private expression: string = ''; private vis: Vis; @@ -113,6 +114,7 @@ export class VisualizeEmbeddable extends Embeddable { - this.vis.uiState.set(key, visCustomizations[key]); - }); + if (visCustomizations.vis) { + this.vis.uiState.set('vis', visCustomizations.vis); + getKeys(visCustomizations).forEach(key => { + this.vis.uiState.set(key, visCustomizations[key]); + }); + } + if (visCustomizations.table) { + this.vis.uiState.set('table', visCustomizations.table); + } this.vis.uiState.on('change', this.uiStateChangeHandler); } } else if (this.parent) { @@ -307,6 +314,7 @@ export class VisualizeEmbeddable extends Embeddable s.unsubscribe()); this.vis.uiState.off('change', this.uiStateChangeHandler); + this.vis.uiState.off('reload', this.reload); if (this.handler) { this.handler.destroy();