From 8d61033e66883949cdb7f0aed1c3e3dbe919e9a4 Mon Sep 17 00:00:00 2001 From: ppisljar Date: Mon, 3 Jul 2017 17:45:06 +0200 Subject: [PATCH] fixing maps bounding box filter --- .../tile_map/public/maps_visualization.js | 32 +++++++++---------- src/ui/public/visualize/visualize.js | 4 +-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/core_plugins/tile_map/public/maps_visualization.js b/src/core_plugins/tile_map/public/maps_visualization.js index fc9ebd52d6ae3b..9fe3bd5a64947f 100644 --- a/src/core_plugins/tile_map/public/maps_visualization.js +++ b/src/core_plugins/tile_map/public/maps_visualization.js @@ -2,14 +2,13 @@ import 'ui/vislib'; import 'plugins/kbn_vislib_vis_types/controls/vislib_basic_options'; import $ from 'jquery'; import _ from 'lodash'; -import { FilterBarPushFilterProvider } from 'ui/filter_bar/push_filter'; import { KibanaMap } from './kibana_map'; import { GeohashLayer } from './geohash_layer'; import './lib/service_settings'; import './styles/_tilemap.less'; -export function MapsVisualizationProvider(Private, serviceSettings, Notifier, getAppState) { +export function MapsVisualizationProvider(serviceSettings, Notifier, getAppState) { const notify = new Notifier({ location: 'Coordinate Map' }); @@ -105,10 +104,10 @@ export function MapsVisualizationProvider(Private, serviceSettings, Notifier, ge this._kibanaMap.on('drawCreated:rectangle', event => { - addSpatialFilter(_.get(this._chartData, 'geohashGridAgg'), 'geo_bounding_box', event.bounds); + this.addSpatialFilter(_.get(this._chartData, 'geohashGridAgg'), 'geo_bounding_box', event.bounds); }); this._kibanaMap.on('drawCreated:polygon', event => { - addSpatialFilter(_.get(this._chartData, 'geohashGridAgg'), 'geo_polygon', { points: event.points }); + this.addSpatialFilter(_.get(this._chartData, 'geohashGridAgg'), 'geo_polygon', { points: event.points }); }); this._kibanaMap.on('baseLayer:loaded', () => { this._baseLayerDirty = false; @@ -237,24 +236,25 @@ export function MapsVisualizationProvider(Private, serviceSettings, Notifier, ge } } - } + addSpatialFilter(agg, filterName, filterData) { + if (!agg) { + return; + } - function addSpatialFilter(agg, filterName, filterData) { - if (!agg) { - return; + const indexPatternName = agg.vis.indexPattern.id; + const field = agg.fieldName(); + const filter = { meta: { negate: false, index: indexPatternName } }; + filter[filterName] = { ignore_unmapped: true }; + filter[filterName][field] = filterData; + getAppState().filters.push(filter); + this.vis.updateState(); } - const indexPatternName = agg.vis.indexPattern.id; - const field = agg.fieldName(); - const filter = {}; - filter[filterName] = { ignore_unmapped: true }; - filter[filterName][field] = filterData; - - const putFilter = Private(FilterBarPushFilterProvider)(getAppState()); - return putFilter(filter, false, indexPatternName); } + + return MapsVisualization; } diff --git a/src/ui/public/visualize/visualize.js b/src/ui/public/visualize/visualize.js index 89c175c3dcb597..b525ef601c050b 100644 --- a/src/ui/public/visualize/visualize.js +++ b/src/ui/public/visualize/visualize.js @@ -50,7 +50,7 @@ uiModules const requestHandler = getHandler(requestHandlers, $scope.vis.type.requestHandler); const responseHandler = getHandler(responseHandlers, $scope.vis.type.responseHandler); - $scope.fetch = function () { + $scope.fetch = _.debounce(function () { // searchSource is only there for courier request handler requestHandler($scope.vis, $scope.appState, $scope.uiState, $scope.savedObj.searchSource) .then(resp => responseHandler($scope.vis, resp), e => { @@ -71,7 +71,7 @@ uiModules $scope.$broadcast('render'); return resp; }); - }; + }, 100); $scope.vis.on('update', () => { if ($scope.editorMode) {