Skip to content

Commit

Permalink
support scripted fields
Browse files Browse the repository at this point in the history
  • Loading branch information
nreese authored and cjcenizal committed Nov 10, 2016
1 parent d91c4c0 commit 4a6e9fe
Showing 1 changed file with 45 additions and 7 deletions.
52 changes: 45 additions & 7 deletions src/ui/public/utils/brush_event.js
Original file line number Diff line number Diff line change
@@ -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;
}
};
};
};

0 comments on commit 4a6e9fe

Please sign in to comment.