mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
fix: Use config pinnedByDefault for filters created with filter editor (#20359)
This commit is contained in:
parent
9e6c4bfba9
commit
96f3f3415d
3 changed files with 33 additions and 5 deletions
|
@ -35,7 +35,8 @@ import {
|
|||
getParamsFromFilter,
|
||||
isFilterValid,
|
||||
buildFilter,
|
||||
areIndexPatternsProvided
|
||||
areIndexPatternsProvided,
|
||||
isFilterPinned
|
||||
} from './lib/filter_editor_utils';
|
||||
import * as filterBuilder from '../filter_manager/lib';
|
||||
import { keyMap } from '../utils/key_map';
|
||||
|
@ -54,7 +55,9 @@ module.directive('filterEditor', function ($timeout, indexPatterns) {
|
|||
},
|
||||
controllerAs: 'filterEditor',
|
||||
bindToController: true,
|
||||
controller: callAfterBindingsWorkaround(function ($scope, $element) {
|
||||
controller: callAfterBindingsWorkaround(function ($scope, $element, config) {
|
||||
const pinnedByDefault = config.get('filters:pinnedByDefault');
|
||||
|
||||
this.init = async () => {
|
||||
if (!areIndexPatternsProvided(this.indexPatterns)) {
|
||||
const defaultIndexPattern = await indexPatterns.getDefault();
|
||||
|
@ -144,8 +147,7 @@ module.directive('filterEditor', function ($timeout, indexPatterns) {
|
|||
}
|
||||
newFilter.meta.disabled = filter.meta.disabled;
|
||||
newFilter.meta.alias = alias;
|
||||
|
||||
const isPinned = _.get(filter, ['$state', 'store']) === 'globalState';
|
||||
const isPinned = isFilterPinned(filter, pinnedByDefault);
|
||||
return this.onSave({ filter, newFilter, isPinned });
|
||||
};
|
||||
|
||||
|
|
|
@ -40,7 +40,8 @@ import {
|
|||
getOperatorOptions,
|
||||
isFilterValid,
|
||||
buildFilter,
|
||||
areIndexPatternsProvided
|
||||
areIndexPatternsProvided,
|
||||
isFilterPinned
|
||||
} from '../filter_editor_utils';
|
||||
|
||||
describe('FilterEditorUtils', function () {
|
||||
|
@ -372,4 +373,24 @@ describe('FilterEditorUtils', function () {
|
|||
expect(areIndexPatternsProvided([indexPatternMock])).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('isFilterPinned', function () {
|
||||
it('should return false when the store is appState', function () {
|
||||
const filter = { $state: { store: 'appState' } };
|
||||
expect(isFilterPinned(filter, false)).to.be(false);
|
||||
expect(isFilterPinned(filter, true)).to.be(false);
|
||||
});
|
||||
|
||||
it('should return true when the store is globalState', function () {
|
||||
const filter = { $state: { store: 'globalState' } };
|
||||
expect(isFilterPinned(filter, false)).to.be(true);
|
||||
expect(isFilterPinned(filter, true)).to.be(true);
|
||||
});
|
||||
|
||||
it('should return the default when the store does not exist', function () {
|
||||
const filter = {};
|
||||
expect(isFilterPinned(filter, false)).to.be(false);
|
||||
expect(isFilterPinned(filter, true)).to.be(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -104,3 +104,8 @@ export function buildFilter({ indexPattern, field, operator, params, filterBuild
|
|||
export function areIndexPatternsProvided(indexPatterns) {
|
||||
return _.compact(indexPatterns).length !== 0;
|
||||
}
|
||||
|
||||
export function isFilterPinned(filter, pinnedByDefault) {
|
||||
if (!filter.hasOwnProperty('$state')) return pinnedByDefault;
|
||||
return filter.$state.store === 'globalState';
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue