From 848a05a21f172cf7b8f19bb8a96c7b06483f2606 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 24 Jan 2022 16:43:50 +0100 Subject: [PATCH] Quickfix for loading external themes --- Logic/DetermineLayout.ts | 11 +--- Models/Constants.ts | 2 +- .../Conversion/LegacyJsonConvert.ts | 57 +++++++++++-------- 3 files changed, 34 insertions(+), 36 deletions(-) diff --git a/Logic/DetermineLayout.ts b/Logic/DetermineLayout.ts index 8c3907f72f..67708a0b9a 100644 --- a/Logic/DetermineLayout.ts +++ b/Logic/DetermineLayout.ts @@ -156,17 +156,8 @@ export default class DetermineLayout { try { let parsed = await Utils.downloadJson(link) - console.log("Got ", parsed) - parsed = new FixLegacyTheme().convertStrict({ - tagRenderings: SharedTagRenderings.SharedTagRenderingJson, - sharedLayers: new Map() // FIXME: actually add the layers - }, parsed, "While loading a dynamic theme") - - - parsed.id = link; - - try { + parsed.id = link; const layoutToUse = DetermineLayout.prepCustomTheme(parsed) return new LayoutConfig(layoutToUse,false).patchImages(link, JSON.stringify(layoutToUse)); } catch (e) { diff --git a/Models/Constants.ts b/Models/Constants.ts index c9188fb459..df2e0f0d6f 100644 --- a/Models/Constants.ts +++ b/Models/Constants.ts @@ -2,7 +2,7 @@ import {Utils} from "../Utils"; export default class Constants { - public static vNumber = "0.14.3"; + public static vNumber = "0.14.4"; public static ImgurApiKey = '7070e7167f0a25a' public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85" diff --git a/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts b/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts index 4be0c136a2..7b75966467 100644 --- a/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts +++ b/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts @@ -180,20 +180,19 @@ class AddMiniMap extends DesugaringStep { } return false; } - + convert(state: DesugaringContext, layerConfig: LayerConfigJson, context: string): { result: LayerConfigJson; errors: string[]; warnings: string[] } { - - const hasMinimap = layerConfig.tagRenderings?.some(tr => AddMiniMap.hasMinimap( tr)) ?? true + const hasMinimap = layerConfig.tagRenderings?.some(tr => AddMiniMap.hasMinimap(tr)) ?? true if (!hasMinimap) { layerConfig = {...layerConfig} layerConfig.tagRenderings = [...layerConfig.tagRenderings] layerConfig.tagRenderings.push(state.tagRenderings.get("minimap")) } - + return { - errors:[], + errors: [], warnings: [], result: layerConfig }; @@ -448,9 +447,13 @@ export class UpdateLegacyLayer extends DesugaringStep { } } } + + oldThemeConfig.layers = Utils.NoNull(oldThemeConfig.layers) + return { errors: [], warnings: [], @@ -874,8 +880,8 @@ class AddDependencyLayersToTheme extends DesugaringStep { const knownTagRenderings: Map = state.tagRenderings; const errors = []; const warnings = []; - const layers: LayerConfigJson[] = theme.layers; // Layers should be expanded at this point - + const layers: LayerConfigJson[] = theme.layers; // Layers should be expanded at this point + knownTagRenderings.forEach((value, key) => { value.id = key; }) @@ -943,6 +949,7 @@ class SubstituteLayer extends Conversion<(string | LayerConfigJson), LayerConfig convert(state: DesugaringContext, json: string | LayerConfigJson, context: string): { result: LayerConfigJson[]; errors: string[]; warnings: string[] } { const errors = [] const warnings = [] + console.log("Substituting layer ", json) if (typeof json === "string") { const found = state.sharedLayers.get(json) if (found === undefined) { @@ -1011,10 +1018,10 @@ class AddDefaultLayers extends DesugaringStep { for (const publicLayer of AllKnownLayouts.AllPublicLayers()) { const id = publicLayer.id const config = state.sharedLayers.get(id) - if(Constants.added_by_default.indexOf(id) >= 0){ + if (Constants.added_by_default.indexOf(id) >= 0) { continue; } - if(config === undefined){ + if (config === undefined) { // This is a layer which is coded within a public theme, not as separate .json continue } @@ -1031,7 +1038,7 @@ class AddDefaultLayers extends DesugaringStep { } json.layers.push(v) } - + return { result: json, errors, @@ -1042,33 +1049,33 @@ class AddDefaultLayers extends DesugaringStep { } export class ApplyOverrideAll extends DesugaringStep { - + constructor() { - super("Applies 'overrideAll' onto every 'layer'. The 'overrideAll'-field is removed afterwards",["overrideAll","layers"]); + super("Applies 'overrideAll' onto every 'layer'. The 'overrideAll'-field is removed afterwards", ["overrideAll", "layers"]); } convert(state: DesugaringContext, json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors: string[]; warnings: string[] } { - + const overrideAll = json.overrideAll; - if(overrideAll === undefined){ - return {result :json, warnings: [], errors: []} + if (overrideAll === undefined) { + return {result: json, warnings: [], errors: []} } - + json = {...json} - + delete json.overrideAll const newLayers = [] for (let layer of json.layers) { layer = {...layer} - Utils.Merge(overrideAll, layer) + Utils.Merge(overrideAll, layer) newLayers.push(layer) } json.layers = newLayers - - - return {result :json, warnings: [], errors: []}; + + + return {result: json, warnings: [], errors: []}; } - + } export class PrepareTheme extends Fuse { @@ -1080,7 +1087,7 @@ export class PrepareTheme extends Fuse { new OnEvery("layers", new PrepareLayer()), new ApplyOverrideAll(), new AddDefaultLayers(), - + new AddDependencyLayersToTheme(), new OnEvery("layers", new AddMiniMap()) );