diff --git a/public/app/plugins/panel/geomap/layers/data/geojsonLayer.ts b/public/app/plugins/panel/geomap/layers/data/geojsonLayer.ts index cf59b65294a..2c49a8f943d 100644 --- a/public/app/plugins/panel/geomap/layers/data/geojsonLayer.ts +++ b/public/app/plugins/panel/geomap/layers/data/geojsonLayer.ts @@ -12,7 +12,6 @@ import { MapLayerRegistryItem, MapLayerOptions, GrafanaTheme2, - PluginState, EventBus, } from '@grafana/data'; import { ComparisonOperation } from '@grafana/schema'; @@ -66,7 +65,6 @@ export const geojsonLayer: MapLayerRegistryItem = { name: 'GeoJSON', description: 'Load static data from a geojson file', isBaseMap: false, - state: PluginState.beta, /** * Function that configures transformation and returns a transformer diff --git a/public/app/plugins/panel/geomap/layers/data/photosLayer.tsx b/public/app/plugins/panel/geomap/layers/data/photosLayer.tsx index 1d06044b740..b545aea88e7 100644 --- a/public/app/plugins/panel/geomap/layers/data/photosLayer.tsx +++ b/public/app/plugins/panel/geomap/layers/data/photosLayer.tsx @@ -69,7 +69,7 @@ export const photosLayer: MapLayerRegistryItem = { isBaseMap: false, showLocation: true, hideOpacity: true, - state: PluginState.alpha, + state: PluginState.beta, /** * Function that configures transformation and returns a transformer diff --git a/public/app/plugins/panel/geomap/layers/data/routeLayer.tsx b/public/app/plugins/panel/geomap/layers/data/routeLayer.tsx index 4e1384f5f83..229979bb1eb 100644 --- a/public/app/plugins/panel/geomap/layers/data/routeLayer.tsx +++ b/public/app/plugins/panel/geomap/layers/data/routeLayer.tsx @@ -69,7 +69,7 @@ export const routeLayer: MapLayerRegistryItem = { description: 'Render data points as a route', isBaseMap: false, showLocation: true, - state: PluginState.alpha, + state: PluginState.beta, /** * Function that configures transformation and returns a transformer diff --git a/public/app/plugins/panel/geomap/layers/registry.ts b/public/app/plugins/panel/geomap/layers/registry.ts index 84f11666b4b..8657a55cb36 100644 --- a/public/app/plugins/panel/geomap/layers/registry.ts +++ b/public/app/plugins/panel/geomap/layers/registry.ts @@ -57,33 +57,44 @@ interface RegistrySelectInfo { } function getLayersSelection(items: Array>, current?: string): RegistrySelectInfo { - const res: RegistrySelectInfo = { options: [], current: [] }; + const registry: RegistrySelectInfo = { options: [], current: [] }; const alpha: Array> = []; + for (const layer of items) { - const opt: SelectableValue = { label: layer.name, value: layer.id, description: layer.description }; - if (layer.state === PluginState.alpha) { - if (!hasAlphaPanels) { - continue; - } - opt.label = `${layer.name} (Alpha)`; - opt.icon = 'bolt'; - alpha.push(opt); - } else { - res.options.push(opt); + const option: SelectableValue = { label: layer.name, value: layer.id, description: layer.description }; + + switch (layer.state) { + case PluginState.alpha: + if (!hasAlphaPanels) { + break; + } + option.label = `${layer.name} (Alpha)`; + option.icon = 'bolt'; + alpha.push(option); + break; + case PluginState.beta: + option.label = `${layer.name} (Beta)`; + default: + registry.options.push(option); } + if (layer.id === current) { - res.current.push(opt); + registry.current.push(option); } } - for (const p of alpha) { - res.options.push(p); + + // Position alpha layers at the end of the layers list + for (const layer of alpha) { + registry.options.push(layer); } - return res; + + return registry; } export function getLayersOptions(basemap: boolean, current?: string): RegistrySelectInfo { if (basemap) { return getLayersSelection([defaultBaseLayer, ...basemapLayers], current); } + return getLayersSelection([...dataLayers, ...basemapLayers], current); }