forked from MapComplete/MapComplete
Themes: validate that a background layer actually exists, fix current-view button (GRB)
This commit is contained in:
parent
eb6194bf8f
commit
fc483ed547
9 changed files with 62 additions and 29 deletions
|
@ -21,6 +21,9 @@ import PresetConfig from "../PresetConfig"
|
|||
import { TagsFilter } from "../../../Logic/Tags/TagsFilter"
|
||||
import { Translatable } from "../Json/Translatable"
|
||||
import { ConversionContext } from "./ConversionContext"
|
||||
import * as eli from "../../../assets/editor-layer-index.json"
|
||||
import { AvailableRasterLayers } from "../../RasterLayers"
|
||||
import Back from "../../../assets/svg/Back.svelte"
|
||||
|
||||
class ValidateLanguageCompleteness extends DesugaringStep<LayoutConfig> {
|
||||
private readonly _languages: string[]
|
||||
|
@ -124,6 +127,7 @@ export class DoesImageExist extends DesugaringStep<string> {
|
|||
}
|
||||
|
||||
export class ValidateTheme extends DesugaringStep<LayoutConfigJson> {
|
||||
private static readonly _availableLayers = AvailableRasterLayers.allIds()
|
||||
/**
|
||||
* The paths where this layer is originally saved. Triggers some extra checks
|
||||
* @private
|
||||
|
@ -260,6 +264,19 @@ export class ValidateTheme extends DesugaringStep<LayoutConfigJson> {
|
|||
.err("The overpassURL is a string, use a list of strings instead. Wrap it with [ ]")
|
||||
}
|
||||
|
||||
if (json.defaultBackgroundId) {
|
||||
const backgroundId = json.defaultBackgroundId
|
||||
|
||||
const isCategory =
|
||||
backgroundId === "photo" || backgroundId === "map" || backgroundId === "osmbasedmap"
|
||||
|
||||
if (!isCategory && !ValidateTheme._availableLayers.has(backgroundId)) {
|
||||
context
|
||||
.enter("defaultBackgroundId")
|
||||
.err("This layer ID is not known: " + backgroundId)
|
||||
}
|
||||
}
|
||||
|
||||
return json
|
||||
}
|
||||
}
|
||||
|
@ -1465,7 +1482,7 @@ export class ValidateLayer extends Conversion<
|
|||
}
|
||||
}
|
||||
|
||||
for (let i = 0; i < json.presets.length; i++) {
|
||||
for (let i = 0; i < json.presets?.length; i++) {
|
||||
const preset = json.presets[i]
|
||||
if (
|
||||
preset.snapToLayer === undefined &&
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue