Skip to content

Commit ef33f8f

Browse files
committed
Fix comments
1 parent fc8e5a4 commit ef33f8f

4 files changed

Lines changed: 45 additions & 16 deletions

File tree

src/legacy/core_plugins/kibana/public/visualize/np_ready/editor/editor.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,10 @@ function VisualizeAppController(
109109
const { vis, searchSource } = savedVis;
110110

111111
$scope.vis = vis;
112-
$scope.linked = !!savedVis.savedSearchId;
113112

114-
const $appStatus = (this.appStatus = {
113+
const $appStatus = {
115114
dirty: !savedVis.id,
116-
});
115+
};
117116

118117
vis.on('dirtyStateChange', ({ isDirty }) => {
119118
vis.dirty = isDirty;
@@ -281,6 +280,7 @@ function VisualizeAppController(
281280
query: searchSource.getOwnField('query') || defaultQuery,
282281
filters: searchSource.getOwnField('filter') || [],
283282
vis: savedVisState,
283+
linked: !!savedVis.savedSearchId,
284284
};
285285

286286
const useHash = config.get('state:storeInSessionStorage');
@@ -361,6 +361,7 @@ function VisualizeAppController(
361361
$scope.uiState = persistedState;
362362
$scope.savedVis = savedVis;
363363
$scope.query = initialState.query;
364+
$scope.linked = initialState.linked;
364365
$scope.searchSource = searchSource;
365366
$scope.refreshInterval = timefilter.getRefreshInterval();
366367

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

391-
const stateContainerSubscription = stateContainer.subscribe(state => {
392+
const unsubscribeStateUpdates = stateContainer.subscribe(state => {
392393
const newQuery = migrateLegacyQuery(state.query);
393394
if (!_.isEqual(state.query, newQuery)) {
394395
stateContainer.transitions.set('query', newQuery);
395396
}
396397
persistOnChange(state);
397398

398399
// if the browser history was changed manually we need to reflect changes in the editor
399-
if (!_.isEqual(vis.getState(), stateContainer.getState().vis)) {
400-
vis.setState(stateContainer.getState().vis);
400+
if (!_.isEqual(vis.getState(), state.vis)) {
401+
vis.setState(state.vis);
401402
vis.forceReload();
402403
vis.emit('updateEditor');
403404
}
404405

406+
$appStatus.dirty = true;
405407
$scope.fetch();
406408
});
407409

@@ -435,8 +437,9 @@ function VisualizeAppController(
435437

436438
// update the searchSource when query updates
437439
$scope.fetch = function() {
438-
const { query, filters } = stateContainer.getState();
440+
const { query, filters, linked } = stateContainer.getState();
439441
$scope.query = query;
442+
$scope.linked = linked;
440443
savedVis.searchSource.setField('query', query);
441444
savedVis.searchSource.setField('filter', filters);
442445
$scope.$broadcast('render');
@@ -475,7 +478,7 @@ function VisualizeAppController(
475478
$scope.vis.off('apply', _applyVis);
476479

477480
unsubscribePersisted();
478-
stateContainerSubscription.unsubscribe();
481+
unsubscribeStateUpdates();
479482
stopStateSync();
480483
});
481484

@@ -515,8 +518,7 @@ function VisualizeAppController(
515518

516519
$scope.onClearSavedQuery = () => {
517520
delete $scope.savedQuery;
518-
stateContainer.transitions.removeSavedQuery();
519-
stateContainer.transitions.set('query', defaultQuery);
521+
stateContainer.transitions.removeSavedQuery(defaultQuery);
520522
filterManager.setFilters(filterManager.getGlobalFilters());
521523
$scope.fetch();
522524
};
@@ -568,6 +570,7 @@ function VisualizeAppController(
568570
});
569571
savedVis.visState = stateContainer.getState().vis;
570572
savedVis.uiStateJSON = angular.toJson($scope.uiState.getChanges());
573+
$appStatus.dirty = false;
571574

572575
return savedVis.save(saveOptions).then(
573576
function(id) {
@@ -649,7 +652,6 @@ function VisualizeAppController(
649652
$scope.unlink = function() {
650653
if (!$scope.linked) return;
651654

652-
$scope.linked = false;
653655
const searchSourceParent = searchSource.getParent();
654656
const searchSourceGrandparent = searchSourceParent.getParent();
655657

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

663-
stateContainer.transitions.set('query', searchSourceParent.getField('query'));
664-
stateContainer.transitions.set('filters', searchSourceParent.getField('filter'));
665+
stateContainer.transitions.unlinkSavedSearch(
666+
searchSourceParent.getField('query'),
667+
searchSourceParent.getField('filter')
668+
);
665669
searchSource.setField('index', searchSourceParent.getField('index'));
666670
searchSource.setParent(searchSourceGrandparent);
667671

src/legacy/core_plugins/kibana/public/visualize/np_ready/editor/lib/visualize_app_state.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,20 @@ export function useVisualizeAppState({ useHash, stateDefaults }: Arguments) {
7373
...vis,
7474
},
7575
}),
76-
removeSavedQuery: state => () => omit(state, 'savedQuery'),
76+
removeSavedQuery: state => defaultQuery => {
77+
const { savedQuery, ...rest } = state;
78+
79+
return {
80+
...rest,
81+
query: defaultQuery,
82+
};
83+
},
84+
unlinkSavedSearch: state => (query, filters) => ({
85+
...state,
86+
query,
87+
filters,
88+
linked: false,
89+
}),
7790
updateVisState: state => newVisState => ({ ...state, vis: toObject(newVisState) }),
7891
}
7992
);

src/legacy/core_plugins/kibana/public/visualize/np_ready/types.d.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export interface VisualizeAppState {
3131
vis: PureVisState;
3232
query: Query;
3333
savedQuery?: string;
34+
linked: boolean;
3435
}
3536

3637
export interface VisualizeAppStateTransitions {
@@ -41,7 +42,10 @@ export interface VisualizeAppStateTransitions {
4142
value: VisualizeAppState[T]
4243
) => VisualizeAppState;
4344
setVis: (state: VisualizeAppState) => (vis: Partial<PureVisState>) => VisualizeAppState;
44-
removeSavedQuery: (state: VisualizeAppState) => () => VisualizeAppState;
45+
removeSavedQuery: (state: VisualizeAppState) => (defaultQuery: Query) => VisualizeAppState;
46+
unlinkSavedSearch: (
47+
state: VisualizeAppState
48+
) => (query: Query, filters: Filter[]) => VisualizeAppState;
4549
updateVisState: (state: VisualizeAppState) => (vis: PureVisState) => VisualizeAppState;
4650
}
4751

src/legacy/core_plugins/visualizations/public/np_ready/public/vis_impl.d.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
import { Vis, VisState } from './vis';
20+
import { Vis, VisState, VisParams } from './vis';
2121
import { VisType } from './types';
2222
import { IIndexPattern } from '../../../../../../plugins/data/common';
2323

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

3737
type: VisType;
38+
getCurrentState: (
39+
includeDisabled?: boolean
40+
) => {
41+
title: string;
42+
type: string;
43+
params: VisParams;
44+
aggs: Array<{ [key: string]: any }>;
45+
};
3846

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

0 commit comments

Comments
 (0)