Skip to content

Commit

Permalink
Merge pull request #61 from istresearch/kbn_7.8.1
Browse files Browse the repository at this point in the history
Release 0.1.10
  • Loading branch information
andrewkcarter committed Aug 14, 2020
2 parents 62ad3c6 + 1d7bc1d commit fe25e5e
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 60 deletions.
4 changes: 2 additions & 2 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "kibana_object_format",
"version": "0.1.9",
"version": "0.1.10",
"description": "Enables objects in arrays to be configured with a field formatter.",
"license": "Apache 2.0",
"homepage": "https://github.com/istresearch/kibana-object-format",
Expand Down Expand Up @@ -38,4 +38,4 @@
"eslint-plugin-prefer-object-spread": "^1.2.1",
"eslint-plugin-react": "^7.12.4"
}
}
}
124 changes: 66 additions & 58 deletions public/hacks/custom_filter_bootstrap/index.js
Expand Up @@ -2,7 +2,7 @@ import _ from 'lodash';
import { uiModules } from 'ui/modules';
import { npStart } from 'ui/new_platform';
import '../../common/jquery-plugins/observer';
import FilterManagerHelper from './FilterManagerHelper'
import FilterManagerHelper from './FilterManagerHelper';
import Popover from './Popover';

const app = uiModules.get('kibana');
Expand All @@ -16,27 +16,30 @@ const popover = new Popover();

window.popover = popover;

filterManager.register = customFilter => {
filterManager.register = (customFilter) => {
if (!filterManager.customFilters) {
filterManager.customFilters = [];
}

filterManager.customFilters.push(customFilter);
};

app.run(['$rootScope', ($rootScope) => {
$rootScope.$on('$routeChangeSuccess', (_$event, next) => {
const {
$$route: { originalPath },
} = next;

if (popover.isInit()) {
popover.destroy();
}
app.run([
'$rootScope',
($rootScope) => {
$rootScope.$on('$routeChangeSuccess', (_$event, next) => {
const {
$$route: { originalPath },
} = next;

if (popover.isInit()) {
popover.destroy();
}

popover.init();
});
}]);
popover.init();
});
},
]);

(async (indexPatterns, addFiltersCached) => {
const indexPatternIDList = await indexPatterns.getFields(['id']);
Expand All @@ -49,52 +52,57 @@ app.run(['$rootScope', ($rootScope) => {

const filterManagerHelper = new FilterManagerHelper(addFiltersCached);

filterManager.addFilters = newFilters => {
filterManager.addFilters = (newFilters) => {
if (_.isArray(newFilters) && newFilters.length !== 1) {
return;
}

const newFilter = newFilters[0];

const selectedIndexPatternID = _.get(newFilter, 'meta.index', null);
const fieldFormatMap = indexPatternLookup[selectedIndexPatternID];
const matchPhrase = _.get(newFilter, 'query.match_phrase', {});
const fieldNameKeys = Object.keys(matchPhrase);

const fieldName = fieldNameKeys.length === 1 ? fieldNameKeys[0] : '';
const formatType = _.get(fieldFormatMap, [fieldName, 'type', 'id'], null);
const params = _.get(fieldFormatMap, [fieldName, '_params'], {});
const values = _.get(matchPhrase,[fieldName], {});
const meta = _.get(newFilter, 'meta', {});

const { getCurrentFilters, addFilter, addImageSimilarityFilter, removeFilter } = filterManagerHelper;
filterManagerHelper.newFilter = newFilter;
filterManagerHelper.similarityScript = _.get(params, 'similarityScript', '');

const filterParams = {
fieldName,
formatType,
params,
values,
meta,
popover,
addFilter: addFilter.bind(filterManagerHelper),
addImageSimilarityFilter: addImageSimilarityFilter.bind(filterManagerHelper),
removeFilter: removeFilter.bind(filterManagerHelper),
getCurrentFilters: getCurrentFilters.bind(filterManagerHelper),
};
let customFilterFlag = false;

for (let customFilter of filterManager.customFilters) {
customFilterFlag = customFilter(filterParams);

if (customFilterFlag) {
break;
addFiltersCached.apply(filterManager, newFilters);
} else {
const newFilter = newFilters[0];

const selectedIndexPatternID = _.get(newFilter, 'meta.index', null);
const fieldFormatMap = indexPatternLookup[selectedIndexPatternID];
const matchPhrase = _.get(newFilter, 'query.match_phrase', {});
const fieldNameKeys = Object.keys(matchPhrase);

const fieldName = fieldNameKeys.length === 1 ? fieldNameKeys[0] : '';
const formatType = _.get(fieldFormatMap, [fieldName, 'type', 'id'], null);
const params = _.get(fieldFormatMap, [fieldName, '_params'], {});
const values = _.get(matchPhrase, [fieldName], {});
const meta = _.get(newFilter, 'meta', {});

const {
getCurrentFilters,
addFilter,
addImageSimilarityFilter,
removeFilter,
} = filterManagerHelper;
filterManagerHelper.newFilter = newFilter;
filterManagerHelper.similarityScript = _.get(params, 'similarityScript', '');

const filterParams = {
fieldName,
formatType,
params,
values,
meta,
popover,
addFilter: addFilter.bind(filterManagerHelper),
addImageSimilarityFilter: addImageSimilarityFilter.bind(filterManagerHelper),
removeFilter: removeFilter.bind(filterManagerHelper),
getCurrentFilters: getCurrentFilters.bind(filterManagerHelper),
};
let customFilterFlag = false;

for (let customFilter of filterManager.customFilters) {
customFilterFlag = customFilter(filterParams);

if (customFilterFlag) {
break;
}
}
}

if (!customFilterFlag) {
addFiltersCached.apply(filterManager, newFilters);
if (!customFilterFlag) {
addFiltersCached.apply(filterManager, newFilters);
}
}
};
})(indexPatterns, filterManager.addFilters);
})(indexPatterns, filterManager.addFilters);

0 comments on commit fe25e5e

Please sign in to comment.