Skip to content

Commit

Permalink
Back out injected data and assign featureCollection to sourceDescript…
Browse files Browse the repository at this point in the history
…or with __ prefix
  • Loading branch information
Aaron Caldwell committed Oct 28, 2019
1 parent 58bbc7d commit 9dd6c2f
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 89 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ describe('kibana.yml configured with map.tilemap.url', () => {
expect(layers).toEqual([{
alpha: 1,
__dataRequests: [],
__injectedData: null,
id: layers[0].id,
applyGlobalQuery: true,
label: null,
Expand Down Expand Up @@ -87,7 +86,6 @@ describe('EMS is enabled', () => {
expect(layers).toEqual([{
alpha: 1,
__dataRequests: [],
__injectedData: null,
id: layers[0].id,
applyGlobalQuery: true,
label: null,
Expand Down
11 changes: 0 additions & 11 deletions x-pack/legacy/plugins/maps/public/layers/layer.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { EuiIcon, EuiLoadingSpinner } from '@elastic/eui';
import turf from 'turf';
import turfBooleanContains from '@turf/boolean-contains';
import { DataRequest } from './util/data_request';
import { InjectedData } from './util/injected_data';
import {
MB_SOURCE_ID_LAYER_ID_PREFIX_DELIMITER,
SOURCE_DATA_ID_ORIGIN
Expand All @@ -32,11 +31,6 @@ export class AbstractLayer {
} else {
this._dataRequests = [];
}
if (this._descriptor.__injectedData) {
this._injectedData = new InjectedData(this._descriptor.__injectedData);
} else {
this._injectedData = null;
}
}

static getBoundDataForSource(mbMap, sourceId) {
Expand All @@ -48,7 +42,6 @@ export class AbstractLayer {
const layerDescriptor = { ...options };

layerDescriptor.__dataRequests = _.get(options, '__dataRequests', []);
layerDescriptor.__injectedData = _.get(options, '__injectedData', null);
layerDescriptor.id = _.get(options, 'id', uuid());
layerDescriptor.label = options.label && options.label.length > 0 ? options.label : null;
layerDescriptor.minZoom = _.get(options, 'minZoom', 0);
Expand Down Expand Up @@ -287,10 +280,6 @@ export class AbstractLayer {
return this._dataRequests.find(dataRequest => dataRequest.getDataId() === id);
}

getInjectedData() {
return this._injectedData ? this._injectedData.getData() : null;
}

isLayerLoading() {
return this._dataRequests.some(dataRequest => dataRequest.isLoading());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,18 @@ export class GeojsonFileSource extends AbstractVectorSource {
applyGlobalQuery: DEFAULT_APPLY_GLOBAL_QUERY
}

static createDescriptor(name) {
static createDescriptor(geoJson, name) {
// Wrap feature as feature collection if needed
const featureCollection = (geoJson.type === 'Feature')
? {
type: 'FeatureCollection',
features: [{ ...geoJson }]
}
: geoJson;

return {
type: GeojsonFileSource.type,
__featureCollection: featureCollection,
name
};
}
Expand Down Expand Up @@ -85,16 +94,9 @@ export class GeojsonFileSource extends AbstractVectorSource {
onPreviewSource(null);
return;
}
const sourceDescriptor = GeojsonFileSource.createDescriptor(name);
const sourceDescriptor = GeojsonFileSource.createDescriptor(geojsonFile, name);
const source = new GeojsonFileSource(sourceDescriptor, inspectorAdapters);
const featureCollection = (geojsonFile.type === 'Feature')
? {
type: 'FeatureCollection',
features: [{ ...geojsonFile }]
}
: geojsonFile;

onPreviewSource(source, { __injectedData: featureCollection });
onPreviewSource(source);
};
};

Expand Down Expand Up @@ -125,6 +127,22 @@ export class GeojsonFileSource extends AbstractVectorSource {
);
}

async getGeoJsonWithMeta() {
const copiedPropsFeatures = this._descriptor.__featureCollection.features
.map(feature => ({
type: 'Feature',
geometry: feature.geometry,
properties: feature.properties ? { ...feature.properties } : {}
}));
return {
data: {
type: 'FeatureCollection',
features: copiedPropsFeatures
},
meta: {}
};
}

async getDisplayName() {
return this._descriptor.name;
}
Expand All @@ -136,8 +154,4 @@ export class GeojsonFileSource extends AbstractVectorSource {
shouldBeIndexed() {
return GeojsonFileSource.isIndexingSource;
}

isInjectedData() {
return true;
}
}
4 changes: 0 additions & 4 deletions x-pack/legacy/plugins/maps/public/layers/sources/source.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,6 @@ export class AbstractSource {
return AbstractSource.isIndexingSource;
}

isInjectedData() {
return false;
}

supportsElasticsearchFilters() {
return false;
}
Expand Down
21 changes: 0 additions & 21 deletions x-pack/legacy/plugins/maps/public/layers/util/injected_data.js

This file was deleted.

39 changes: 2 additions & 37 deletions x-pack/legacy/plugins/maps/public/layers/vector_layer.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,28 +132,6 @@ export class VectorLayer extends AbstractLayer {
return true;
}

getInjectedData() {
const featureCollection = super.getInjectedData();
if (!featureCollection) {
return null;
}
const copiedPropsFeatures = featureCollection.features
.map(feature => ({
type: 'Feature',
geometry: feature.geometry,
properties: feature.properties
? {
...feature.properties,
[FEATURE_VISIBLE_PROPERTY_NAME]: true
}
: {}
}));
return {
type: 'FeatureCollection',
features: copiedPropsFeatures
};
}

getCustomIconAndTooltipContent() {
const featureCollection = this._getSourceFeatureCollection();

Expand Down Expand Up @@ -520,16 +498,7 @@ export class VectorLayer extends AbstractLayer {
startLoading, stopLoading, onLoadError, registerCancelCallback, dataFilters
}) {

if (this._source.isInjectedData()) {
const featureCollection = this.getInjectedData();
return {
refreshed: false,
featureCollection
};
}

const requestToken = Symbol(`layer-source-refresh:${ this.getId()} - source`);

const searchFilters = this._getSearchFilters(dataFilters);
const canSkip = await this._canSkipSourceUpdate(this._source, SOURCE_DATA_ID_ORIGIN, searchFilters);
if (canSkip) {
Expand Down Expand Up @@ -604,12 +573,8 @@ export class VectorLayer extends AbstractLayer {
}

_getSourceFeatureCollection() {
if (this._source.isInjectedData()) {
return this.getInjectedData();
} else {
const sourceDataRequest = this.getSourceDataRequest();
return sourceDataRequest ? sourceDataRequest.getData() : null;
}
const sourceDataRequest = this.getSourceDataRequest();
return sourceDataRequest ? sourceDataRequest.getData() : null;
}

_syncFeatureCollectionWithMb(mbMap) {
Expand Down

0 comments on commit 9dd6c2f

Please sign in to comment.