Skip to content

Commit

Permalink
Fix comments
Browse files Browse the repository at this point in the history
  • Loading branch information
sulemanof committed Feb 17, 2020
1 parent fc8e5a4 commit ef33f8f
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,10 @@ function VisualizeAppController(
const { vis, searchSource } = savedVis;

$scope.vis = vis;
$scope.linked = !!savedVis.savedSearchId;

const $appStatus = (this.appStatus = {
const $appStatus = {
dirty: !savedVis.id,
});
};

vis.on('dirtyStateChange', ({ isDirty }) => {
vis.dirty = isDirty;
Expand Down Expand Up @@ -281,6 +280,7 @@ function VisualizeAppController(
query: searchSource.getOwnField('query') || defaultQuery,
filters: searchSource.getOwnField('filter') || [],
vis: savedVisState,
linked: !!savedVis.savedSearchId,
};

const useHash = config.get('state:storeInSessionStorage');
Expand Down Expand Up @@ -361,6 +361,7 @@ function VisualizeAppController(
$scope.uiState = persistedState;
$scope.savedVis = savedVis;
$scope.query = initialState.query;
$scope.linked = initialState.linked;
$scope.searchSource = searchSource;
$scope.refreshInterval = timefilter.getRefreshInterval();

Expand Down Expand Up @@ -388,20 +389,21 @@ function VisualizeAppController(
$scope.timeRange = timefilter.getTime();
$scope.opts = _.pick($scope, 'savedVis', 'isAddToDashMode');

const stateContainerSubscription = stateContainer.subscribe(state => {
const unsubscribeStateUpdates = stateContainer.subscribe(state => {
const newQuery = migrateLegacyQuery(state.query);
if (!_.isEqual(state.query, newQuery)) {
stateContainer.transitions.set('query', newQuery);
}
persistOnChange(state);

// if the browser history was changed manually we need to reflect changes in the editor
if (!_.isEqual(vis.getState(), stateContainer.getState().vis)) {
vis.setState(stateContainer.getState().vis);
if (!_.isEqual(vis.getState(), state.vis)) {
vis.setState(state.vis);
vis.forceReload();
vis.emit('updateEditor');
}

$appStatus.dirty = true;
$scope.fetch();
});

Expand Down Expand Up @@ -435,8 +437,9 @@ function VisualizeAppController(

// update the searchSource when query updates
$scope.fetch = function() {
const { query, filters } = stateContainer.getState();
const { query, filters, linked } = stateContainer.getState();
$scope.query = query;
$scope.linked = linked;
savedVis.searchSource.setField('query', query);
savedVis.searchSource.setField('filter', filters);
$scope.$broadcast('render');
Expand Down Expand Up @@ -475,7 +478,7 @@ function VisualizeAppController(
$scope.vis.off('apply', _applyVis);

unsubscribePersisted();
stateContainerSubscription.unsubscribe();
unsubscribeStateUpdates();
stopStateSync();
});

Expand Down Expand Up @@ -515,8 +518,7 @@ function VisualizeAppController(

$scope.onClearSavedQuery = () => {
delete $scope.savedQuery;
stateContainer.transitions.removeSavedQuery();
stateContainer.transitions.set('query', defaultQuery);
stateContainer.transitions.removeSavedQuery(defaultQuery);
filterManager.setFilters(filterManager.getGlobalFilters());
$scope.fetch();
};
Expand Down Expand Up @@ -568,6 +570,7 @@ function VisualizeAppController(
});
savedVis.visState = stateContainer.getState().vis;
savedVis.uiStateJSON = angular.toJson($scope.uiState.getChanges());
$appStatus.dirty = false;

return savedVis.save(saveOptions).then(
function(id) {
Expand Down Expand Up @@ -649,7 +652,6 @@ function VisualizeAppController(
$scope.unlink = function() {
if (!$scope.linked) return;

$scope.linked = false;
const searchSourceParent = searchSource.getParent();
const searchSourceGrandparent = searchSourceParent.getParent();

Expand All @@ -660,8 +662,10 @@ function VisualizeAppController(
_.union(searchSource.getOwnField('filter'), searchSourceParent.getOwnField('filter'))
);

stateContainer.transitions.set('query', searchSourceParent.getField('query'));
stateContainer.transitions.set('filters', searchSourceParent.getField('filter'));
stateContainer.transitions.unlinkSavedSearch(
searchSourceParent.getField('query'),
searchSourceParent.getField('filter')
);
searchSource.setField('index', searchSourceParent.getField('index'));
searchSource.setParent(searchSourceGrandparent);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,20 @@ export function useVisualizeAppState({ useHash, stateDefaults }: Arguments) {
...vis,
},
}),
removeSavedQuery: state => () => omit(state, 'savedQuery'),
removeSavedQuery: state => defaultQuery => {
const { savedQuery, ...rest } = state;

return {
...rest,
query: defaultQuery,
};
},
unlinkSavedSearch: state => (query, filters) => ({
...state,
query,
filters,
linked: false,
}),
updateVisState: state => newVisState => ({ ...state, vis: toObject(newVisState) }),
}
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ export interface VisualizeAppState {
vis: PureVisState;
query: Query;
savedQuery?: string;
linked: boolean;
}

export interface VisualizeAppStateTransitions {
Expand All @@ -41,7 +42,10 @@ export interface VisualizeAppStateTransitions {
value: VisualizeAppState[T]
) => VisualizeAppState;
setVis: (state: VisualizeAppState) => (vis: Partial<PureVisState>) => VisualizeAppState;
removeSavedQuery: (state: VisualizeAppState) => () => VisualizeAppState;
removeSavedQuery: (state: VisualizeAppState) => (defaultQuery: Query) => VisualizeAppState;
unlinkSavedSearch: (
state: VisualizeAppState
) => (query: Query, filters: Filter[]) => VisualizeAppState;
updateVisState: (state: VisualizeAppState) => (vis: PureVisState) => VisualizeAppState;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* under the License.
*/

import { Vis, VisState } from './vis';
import { Vis, VisState, VisParams } from './vis';
import { VisType } from './types';
import { IIndexPattern } from '../../../../../../plugins/data/common';

Expand All @@ -35,6 +35,14 @@ export declare class VisImpl implements Vis {
constructor(indexPattern: IIndexPattern, visState?: InitVisStateType);

type: VisType;
getCurrentState: (
includeDisabled?: boolean
) => {
title: string;
type: string;
params: VisParams;
aggs: Array<{ [key: string]: any }>;
};

// Since we haven't typed everything here yet, we basically "any" the rest
// of that interface. This should be removed as soon as this type definition
Expand Down

0 comments on commit ef33f8f

Please sign in to comment.