Skip to content

Commit

Permalink
pass through reload information and ui state
Browse files Browse the repository at this point in the history
  • Loading branch information
flash1293 committed Apr 16, 2020
1 parent 02cba10 commit 81f7302
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,9 @@ 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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.forceReload();
};

updateVisState = debounce(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export interface VisualizeInput extends EmbeddableInput {
vis?: {
colors?: { [key: string]: string };
};
table?: unknown;
}

export interface VisualizeOutput extends EmbeddableOutput {
Expand All @@ -76,7 +77,7 @@ export class VisualizeEmbeddable extends Embeddable<VisualizeInput, VisualizeOut
private query?: Query;
private title?: string;
private filters?: Filter[];
private visCustomizations: VisualizeInput['vis'];
private visCustomizations?: Pick<VisualizeInput, 'vis' | 'table'>;
private subscriptions: Subscription[] = [];
private expression: string = '';
private vis: Vis;
Expand Down Expand Up @@ -105,6 +106,7 @@ export class VisualizeEmbeddable extends Embeddable<VisualizeInput, VisualizeOut
this.timefilter = timefilter;
this.vis = vis;
this.vis.uiState.on('change', this.uiStateChangeHandler);
this.vis.uiState.on('reload', this.reload);

this.autoRefreshFetchSubscription = timefilter
.getAutoRefreshFetch$()
Expand Down Expand Up @@ -141,17 +143,22 @@ export class VisualizeEmbeddable extends Embeddable<VisualizeInput, VisualizeOut
// Check for changes that need to be forwarded to the uiState
// Since the vis has an own listener on the uiState we don't need to
// pass anything from here to the handler.update method
const visCustomizations = this.input.vis;
if (visCustomizations) {
const visCustomizations = { vis: this.input.vis, table: this.input.table };
if (visCustomizations.vis || visCustomizations.table) {
if (!_.isEqual(visCustomizations, this.visCustomizations)) {
this.visCustomizations = visCustomizations;
// Turn this off or the uiStateChangeHandler will fire for every modification.
this.vis.uiState.off('change', this.uiStateChangeHandler);
this.vis.uiState.clearAllKeys();
this.vis.uiState.set('vis', visCustomizations);
getKeys(visCustomizations).forEach(key => {
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) {
Expand Down
4 changes: 3 additions & 1 deletion src/plugins/visualizations/public/expressions/vis.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ export class ExprVis extends EventEmitter {
}

forceReload() {
this.emit('reload');
if (this.uiState) {
this.uiState.emit('reload');
}
}

isHierarchical() {
Expand Down

0 comments on commit 81f7302

Please sign in to comment.