From c5abaac60d3f0fa77eccd7903b0fa8ad50076804 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 24 Jan 2022 00:53:29 +0100 Subject: [PATCH] Fix overrideAll-functionality --- .../Conversion/LegacyJsonConvert.ts | 36 +++++++++++++++++-- assets/themes/speelplekken/speelplekken.json | 5 ++- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts b/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts index df9408a8ea..4be0c136a2 100644 --- a/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts +++ b/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts @@ -1041,15 +1041,47 @@ class AddDefaultLayers extends DesugaringStep { } +export class ApplyOverrideAll extends DesugaringStep { + + constructor() { + 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: []} + } + + json = {...json} + + delete json.overrideAll + const newLayers = [] + for (let layer of json.layers) { + layer = {...layer} + Utils.Merge(overrideAll, layer) + newLayers.push(layer) + } + json.layers = newLayers + + + return {result :json, warnings: [], errors: []}; + } + +} + export class PrepareTheme extends Fuse { constructor() { super( "Fully prepares and expands a theme", new OnEveryConcat("layers", new SubstituteLayer()), new SetDefault("socialImage", "assets/SocialImage.png", true), - new AddDefaultLayers(), - new AddDependencyLayersToTheme(), new OnEvery("layers", new PrepareLayer()), + new ApplyOverrideAll(), + new AddDefaultLayers(), + + new AddDependencyLayersToTheme(), new OnEvery("layers", new AddMiniMap()) ); } diff --git a/assets/themes/speelplekken/speelplekken.json b/assets/themes/speelplekken/speelplekken.json index adf40461a3..226c789153 100644 --- a/assets/themes/speelplekken/speelplekken.json +++ b/assets/themes/speelplekken/speelplekken.json @@ -277,11 +277,10 @@ "render": "" } ], - "+iconOverlays": [ + "+iconBadges": [ { "if": "_video:id~*", - "then": "./assets/themes/speelplekken/youtube.svg", - "badge": true + "then": "./assets/themes/speelplekken/youtube.svg" } ], "isShown": {