Esempio n. 1
0
 return function (aggConfig, key) {
   return buildRangeFilter(
     aggConfig.params.field,
     key,
     aggConfig.vis.indexPattern,
     aggConfig.fieldFormatter()(key)
   );
 };
Esempio n. 2
0
 it('should return a range filter when passed a standard field', function () {
   expected.range = {
     bytes: {
       gte: 1,
       lte: 3
     }
   };
   expect(fn(indexPattern.fields.byName.bytes, {gte: 1, lte: 3}, indexPattern)).to.eql(expected);
 });
Esempio n. 3
0
  return function (agg, key) {
    let start = moment(key);
    let interval = agg.buckets.getInterval();

    return buildRangeFilter(agg.params.field, {
      gte: start.valueOf(),
      lte: start.add(interval).subtract(1, 'ms').valueOf()
    }, agg.vis.indexPattern);
  };
Esempio n. 4
0
    it('should wrap painless scripts in comparator lambdas', function () {
      const expected = `boolean gte(Supplier s, def v) {return s.get() >= v} ` +
              `boolean lte(Supplier s, def v) {return s.get() <= v}` +
              `gte(() -> { ${indexPattern.fields.byName['script date'].script} }, params.gte) && ` +
              `lte(() -> { ${indexPattern.fields.byName['script date'].script} }, params.lte)`;

      const inlineScript = fn(indexPattern.fields.byName['script date'], { gte: 1, lte: 3 }, indexPattern).script.script.inline;
      expect(inlineScript).to.be(expected);
    });
Esempio n. 5
0
      _.each({gte: '>=', gt: '>', lte: '<=', lt: '<'}, function (operator, key) {
        let params = {};
        params[key] = 5;
        let filter = fn(indexPattern.fields.byName['script number'], params, indexPattern);

        expect(filter.script.script.inline).to.be('(' + indexPattern.fields.byName['script number'].script + ')' + operator + key);
        expect(filter.script.script.params[key]).to.be(5);
        expect(filter.script.script.params.value).to.be(operator + 5);

      });
Esempio n. 6
0
  return function (aggConfig, key) {
    const value = parseInt(key, 10);

    return buildRangeFilter(
      aggConfig.params.field,
      { gte: value, lt: value + aggConfig.params.interval },
      aggConfig.vis.indexPattern,
      aggConfig.fieldFormatter()(key)
    );
  };
Esempio n. 7
0
  return function (agg, key) {
    const start = moment(key);
    const interval = agg.buckets.getInterval();

    return buildRangeFilter(agg.params.field, {
      gte: start.valueOf(),
      lt: start.add(interval).valueOf(),
      format: 'epoch_millis'
    }, agg.vis.indexPattern);
  };
Esempio n. 8
0
  return function (agg, key) {
    const range = dateRange.parse(key, config.get('dateFormat'));

    const filter = {};
    if (range.from) filter.gte = +range.from;
    if (range.to) filter.lt = +range.to;
    if (range.to && range.from) filter.format = 'epoch_millis';

    return buildRangeFilter(agg.params.field, filter, agg.vis.indexPattern);
  };
Esempio n. 9
0
 it('should return a script filter when passed a scripted field', function () {
   expected.meta.field = 'script number';
   _.set(expected, 'script.script', {
     lang: 'expression',
     inline: '(' + indexPattern.fields.byName['script number'].script + ')>=gte && (' +
     indexPattern.fields.byName['script number'].script + ')<=lte',
     params: {
       value: '>=1 <=3',
       gte: 1,
       lte: 3
     }
   });
   expect(fn(indexPattern.fields.byName['script number'], {gte: 1, lte: 3}, indexPattern)).to.eql(expected);
 });
Esempio n. 10
0
    return function (aggConfig, key) {
      let range;
      if (aggConfig.params.ipRangeType === 'mask') {
        range = new CidrMask(key).getRange();
      } else {
        let addresses = key.split(/\-/);
        range = {
          from: addresses[0],
          to: addresses[1]
        };
      }

      return buildRangeFilter(aggConfig.params.field, {gte: range.from, lte: range.to}, aggConfig.vis.indexPattern);
    };
Esempio n. 11
0
    return event => {
      if (!event.data.xAxisField) {
        return;
      }

      switch (event.data.xAxisField.type) {
        case 'date':
          const from = moment(event.range[0]);
          const to = moment(event.range[1]);

          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;
      }
    };
Esempio n. 12
0
 beforeEach(function () {
   filter = fn(indexPattern.fields.byName['script number'], { gte: -Infinity, lt: Infinity }, indexPattern);
 });
Esempio n. 13
0
 expect(function () {
   fn(indexPattern.fields.byName['script number'], {lte: 1, lt: 3}, indexPattern);
 }).to.throwError();