use an emitter to update agg params on move

updates both the current agg and any editable agg, if one exists. Note that the moveEnd event also fires on zoom change
This commit is contained in:
Joe Fleming 2015-05-29 17:03:12 -07:00
parent 4d01ca6c05
commit 89d78f2a1d
2 changed files with 22 additions and 0 deletions

View file

@ -128,6 +128,12 @@ define(function (require) {
self._attr.mapZoom = map.getZoom();
self._attr.mapCenter = map.getCenter();
self.events.emit('mapMoveEnd', {
chart: self.originalConfig,
zoom: self._attr.mapZoom,
center: self._attr.mapCenter
});
map.removeLayer(featureLayer);
featureLayer = self.markerType(map).addTo(map);

View file

@ -38,6 +38,22 @@ define(function (require) {
pushFilter(filter, false, indexPatternName);
},
mapMoveEnd: function (event) {
var agg = _.deepGet(event, 'chart.geohashGridAgg');
if (!agg) return;
agg.params.mapZoom = event.zoom;
agg.params.mapCenter = [event.center.lat, event.center.lng];
var editableVis = agg.vis.getEditableVis();
if (!editableVis) return;
var editableAgg = editableVis.aggs.byId[agg.id];
if (editableAgg) {
editableAgg.params.mapZoom = event.zoom;
editableAgg.params.mapCenter = [event.center.lat, event.center.lng];
}
},
mapZoomEnd: function (event) {
var agg = _.deepGet(event, 'chart.geohashGridAgg');
if (!agg || !agg.params.autoPrecision) return;