Skip to content

Commit

Permalink
[Maps] use EMS v6.6 (elastic#27560)
Browse files Browse the repository at this point in the history
Maps plugin should use correct EMS version.
  • Loading branch information
thomasneirynck authored Dec 26, 2018
1 parent 20ff1f6 commit a3b4f68
Show file tree
Hide file tree
Showing 16 changed files with 116 additions and 161 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import { truncatedColorMaps } from 'ui/vislib/components/color/truncated_colorma
import { mapToLayerWithId } from './util';
import { RegionMapsVisualizationProvider } from './region_map_visualization';
import { Status } from 'ui/vis/update_status';
import { ORIGIN } from '../../../../core_plugins/ems_util/common/origin';
import { ORIGIN } from '../../../../legacy/core_plugins/tile_map/common/origin';

VisTypesRegistryProvider.register(function RegionMapProvider(Private, regionmapsConfig, config, i18n) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { toastNotifications } from 'ui/notify';
import regionMapVisParamsTemplate from './region_map_vis_params.html';
import { mapToLayerWithId } from './util';
import '../../tile_map/public/editors/wms_options';
import { ORIGIN } from '../../../../core_plugins/ems_util/common/origin';
import { ORIGIN } from '../../../../legacy/core_plugins/tile_map/common/origin';

uiModules.get('kibana/region_map')
.directive('regionMapVisParams', function (serviceSettings, regionmapsConfig) {
Expand Down
2 changes: 1 addition & 1 deletion src/legacy/core_plugins/region_map/public/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/

import _ from 'lodash';
import { ORIGIN } from '../../../../core_plugins/ems_util/common/origin';
import { ORIGIN } from '../../../../legacy/core_plugins/tile_map/common/origin';

export function mapToLayerWithId(prefix, layer) {
const clonedLayer = _.cloneDeep(layer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,63 @@

import MarkdownIt from 'markdown-it';
import _ from 'lodash';
import { modifyUrl } from '../../../core/public/utils';
import { TMSService } from './tms_service';
import { FileLayer } from './file_layer';
import fetch from 'node-fetch';
import { format as formatUrl, parse as parseUrl } from 'url';

const extendUrl = (url, props) => (
modifyUrl(url, parsed => _.merge(parsed, props))
modifyUrlLocal(url, parsed => _.merge(parsed, props))
);

const markdownIt = new MarkdownIt({
html: false,
linkify: true
});

/**
* plugins cannot have upstream dependencies on core/*-kibana.
* Work-around by copy-pasting modifyUrl routine here.
* @param url
* @param block
*/
function modifyUrlLocal(url, block) {

const parsed = parseUrl(url, true);

// copy over the most specific version of each
// property. By default, the parsed url includes
// several conflicting properties (like path and
// pathname + search, or search and query) and keeping
// track of which property is actually used when they
// are formatted is harder than necessary
const meaningfulParts = {
protocol: parsed.protocol,
slashes: parsed.slashes,
auth: parsed.auth,
hostname: parsed.hostname,
port: parsed.port,
pathname: parsed.pathname,
query: parsed.query || {},
hash: parsed.hash,
};

// the block modifies the meaningfulParts object, or returns a new one
const modifiedParts = block(meaningfulParts) || meaningfulParts;

// format the modified/replaced meaningfulParts back into a url
return formatUrl({
protocol: modifiedParts.protocol,
slashes: modifiedParts.slashes,
auth: modifiedParts.auth,
hostname: modifiedParts.hostname,
port: modifiedParts.port,
pathname: modifiedParts.pathname,
query: modifiedParts.query,
hash: modifiedParts.hash,
});

}

/**
* Unescape a url template that was escaped by encodeURI() so leaflet
Expand Down
File renamed without changes.
6 changes: 6 additions & 0 deletions src/legacy/core_plugins/tile_map/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,19 @@
*/

import { resolve } from 'path';
import * as emsClient from './common/ems_client';

export default function (kibana) {

return new kibana.Plugin({
uiExports: {
visTypes: ['plugins/tile_map/tile_map_vis'],
styleSheetPaths: resolve(__dirname, 'public/index.scss'),
},
init(server) {
server.expose({
ems_client: emsClient
});
}
});
}
2 changes: 1 addition & 1 deletion src/ui/public/vis/__tests__/map/ems_client.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import EMS_FILES from './ems_mocks/sample_files_6.6.json';
import EMS_TILES from './ems_mocks/sample_tiles_6.6.json';


import { EMSClientV66 } from '../../../../../core_plugins/ems_util/common/ems_client';
import { EMSClientV66 } from '../../../../../legacy/core_plugins/tile_map/common/ems_client';

describe('ems_client', () => {

Expand Down
2 changes: 1 addition & 1 deletion src/ui/public/vis/__tests__/map/service_settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import url from 'url';
import EMS_CATALOGUE from './ems_mocks/sample_manifest_6.6.json';
import EMS_FILES from './ems_mocks/sample_files_6.6.json';
import EMS_TILES from './ems_mocks/sample_tiles_6.6.json';
import { ORIGIN } from '../../../../../core_plugins/ems_util/common/origin';
import { ORIGIN } from '../../../../../legacy/core_plugins/tile_map/common/origin';

describe('service_settings (FKA tilemaptest)', function () {

Expand Down
4 changes: 2 additions & 2 deletions src/ui/public/vis/map/service_settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
import { uiModules } from '../../modules';
import _ from 'lodash';
import MarkdownIt from 'markdown-it';
import { ORIGIN } from '../../../../core_plugins/ems_util/common/origin';
import { EMSClientV66 } from '../../../../core_plugins/ems_util/common/ems_client';
import { ORIGIN } from '../../../../legacy/core_plugins/tile_map/common/origin';
import { EMSClientV66 } from '../../../../legacy/core_plugins/tile_map/common/ems_client';

const markdownIt = new MarkdownIt({
html: false,
Expand Down
124 changes: 0 additions & 124 deletions x-pack/plugins/gis/common/ems_v2.js

This file was deleted.

2 changes: 1 addition & 1 deletion x-pack/plugins/gis/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { watchStatusAndLicenseToInitialize } from
export function gis(kibana) {

return new kibana.Plugin({
require: ['kibana', 'elasticsearch', 'xpack_main'],
require: ['kibana', 'elasticsearch', 'xpack_main', 'tile_map'],
id: 'gis',
configPrefix: 'xpack.gis',
publicDir: resolve(__dirname, 'public'),
Expand Down
24 changes: 12 additions & 12 deletions x-pack/plugins/gis/public/shared/layers/sources/ems_file_source.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,24 @@ export class EMSFileSource extends VectorSource {
static type = 'EMS_FILE';
static typeDisplayName = 'Elastic Maps Service region boundaries';

static createDescriptor(name) {
static createDescriptor(id) {
return {
type: EMSFileSource.type,
name: name
id: id
};
}

static renderEditor({ dataSourcesMeta, onPreviewSource }) {

const emsVectorOptionsRaw = (dataSourcesMeta) ? dataSourcesMeta.ems.file : [];
const emsVectorOptions = emsVectorOptionsRaw ? emsVectorOptionsRaw.map((file) => ({
value: file.name,
value: file.id,
text: file.name
})) : [];

const onChange = ({ target }) => {
const selectedName = target.options[target.selectedIndex].text;
const emsFileSourceDescriptor = EMSFileSource.createDescriptor(selectedName);
const selectedId = target.options[target.selectedIndex].value;
const emsFileSourceDescriptor = EMSFileSource.createDescriptor(selectedId);
const emsFileSource = new EMSFileSource(emsFileSourceDescriptor, emsVectorOptionsRaw);
onPreviewSource(emsFileSource);
};
Expand All @@ -59,8 +59,8 @@ export class EMSFileSource extends VectorSource {
}

async getGeoJsonWithMeta() {
const fileSource = this._emsFiles.find((source => source.name === this._descriptor.name));
const fetchUrl = `../${GIS_API_PATH}/data/ems?name=${encodeURIComponent(this._descriptor.name)}`;
const fileSource = this._emsFiles.find((source => source.id === this._descriptor.id));
const fetchUrl = `../${GIS_API_PATH}/data/ems?id=${encodeURIComponent(this._descriptor.id)}`;
const featureCollection = await VectorSource.getGeoJson(fileSource, fetchUrl);
return {
data: featureCollection,
Expand All @@ -69,25 +69,25 @@ export class EMSFileSource extends VectorSource {
}

renderDetails() {
const emsHotLink = emsServiceSettings.getEMSHotLink(this._descriptor.name);
const emsHotLink = emsServiceSettings.getEMSHotLink(this._descriptor.id);
return (
<EuiText color="subdued" size="s">
<p className="gisLayerDetails">
<strong className="gisLayerDetails__label">Source </strong><span>Elastic Maps Service</span><br/>
<strong className="gisLayerDetails__label">Name </strong><span>{this._descriptor.name}</span><br/>
<strong className="gisLayerDetails__label">Id </strong><span>{this._descriptor.id}</span><br/>
<EuiLink href={emsHotLink} target="_blank">Preview on landing page</EuiLink><br/>
</p>
</EuiText>
);
}

async getDisplayName() {
return this._descriptor.name;
const fileSource = this._emsFiles.find((source => source.id === this._descriptor.id));
return fileSource.name;
}

async getStringFields() {
//todo: use map/service-settings instead.
const fileSource = this._emsFiles.find((source => source.name === this._descriptor.name));
const fileSource = this._emsFiles.find((source => source.id === this._descriptor.id));

return fileSource.fields.map(f => {
return { name: f.name, label: f.description };
Expand Down
2 changes: 1 addition & 1 deletion x-pack/plugins/gis/public/shared/layers/sources/source.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export class ASource {
this._descriptor = descriptor;
}

destory() {}
destroy() {}

renderDetails() {
return (<div>{`Here be details for source`}</div>);
Expand Down
Loading

0 comments on commit a3b4f68

Please sign in to comment.