mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
support scripted fields
This commit is contained in:
parent
d91c4c0cfe
commit
4a6e9fed25
1 changed files with 45 additions and 7 deletions
|
@ -1,13 +1,51 @@
|
|||
import _ from 'lodash';
|
||||
import moment from 'moment';
|
||||
import buildRangeFilter from 'ui/filter_manager/lib/range';
|
||||
export default function brushEventProvider(timefilter) {
|
||||
return function (event) {
|
||||
let from = moment(event.range[0]);
|
||||
let to = moment(event.range[1]);
|
||||
return $state => {
|
||||
return event => {
|
||||
if (!event.data.xAxisField) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (to - from === 0) return;
|
||||
switch (event.data.xAxisField.type) {
|
||||
case 'date':
|
||||
let from = moment(event.range[0]);
|
||||
let to = moment(event.range[1]);
|
||||
|
||||
timefilter.time.from = from;
|
||||
timefilter.time.to = to;
|
||||
timefilter.time.mode = 'absolute';
|
||||
if (to - from === 0) return;
|
||||
|
||||
timefilter.time.from = from;
|
||||
timefilter.time.to = to;
|
||||
timefilter.time.mode = 'absolute';
|
||||
break;
|
||||
|
||||
case 'number':
|
||||
if (event.range.length <= 1) return;
|
||||
|
||||
const existingFilter = $state.filters.find(filter => (
|
||||
filter.meta && filter.meta.key === event.data.xAxisField.name
|
||||
));
|
||||
|
||||
const min = event.range[0];
|
||||
const max = event.range[event.range.length - 1];
|
||||
const range = {gte: min, lt: max};
|
||||
if (_.has(existingFilter, 'range')) {
|
||||
existingFilter.range[event.data.xAxisField.name] = range;
|
||||
} else if (_.has(existingFilter, 'script.script.params.gte')
|
||||
&& _.has(existingFilter, 'script.script.params.lt')) {
|
||||
existingFilter.script.script.params.gte = min;
|
||||
existingFilter.script.script.params.lt = max;
|
||||
} else {
|
||||
const newFilter = buildRangeFilter(
|
||||
event.data.xAxisField,
|
||||
range,
|
||||
event.data.indexPattern,
|
||||
event.data.xAxisFormatter);
|
||||
$state.$newFilters = [newFilter];
|
||||
}
|
||||
break;
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue