From 6a200e04bc0f0a9119710e0f38d5766445bf196b Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Thu, 10 Jul 2025 16:35:17 +0200 Subject: [PATCH] Fix(favourites): don't show 'toilet at {name}' for the review overview --- .../sauna_at_leisure/sauna_at_leisure.json | 3 +++ .../toilet_at_amenity/toilet_at_amenity.json | 3 +++ scripts/generateFavouritesLayer.ts | 17 +++++++++++++++++ src/Logic/DetermineTheme.ts | 4 ++-- 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/assets/layers/sauna_at_leisure/sauna_at_leisure.json b/assets/layers/sauna_at_leisure/sauna_at_leisure.json index 70eeaf08c..8ae463d2d 100644 --- a/assets/layers/sauna_at_leisure/sauna_at_leisure.json +++ b/assets/layers/sauna_at_leisure/sauna_at_leisure.json @@ -319,6 +319,9 @@ ], "allowMove": true, "#": "Use 'sauna_at_leisure.sauna_grouped' in a layer.tagRenderings to add the 'sauna information' expandle block (incl 'has sauna'); use 'sauna_at_leisure.expanded' to get all sauna questions directly (which does _not_ include the 'has sauna' question)", + "labels": [ + "favourite:ignore" + ], "credits": "Osmwithspace", "credits:uid": 8770388 } diff --git a/assets/layers/toilet_at_amenity/toilet_at_amenity.json b/assets/layers/toilet_at_amenity/toilet_at_amenity.json index e37eb39e0..d13843859 100644 --- a/assets/layers/toilet_at_amenity/toilet_at_amenity.json +++ b/assets/layers/toilet_at_amenity/toilet_at_amenity.json @@ -274,5 +274,8 @@ ] } } + ], + "labels": [ + "favourite:ignore" ] } diff --git a/scripts/generateFavouritesLayer.ts b/scripts/generateFavouritesLayer.ts index b360c9a4b..0b22c7f25 100644 --- a/scripts/generateFavouritesLayer.ts +++ b/scripts/generateFavouritesLayer.ts @@ -38,6 +38,23 @@ export class GenerateFavouritesLayer extends Script { this.layers.push(layerConfig) } } + // Sort the layers, low priority items to the back + this.layers.sort((a, b) => { + const aI= a.labels?.indexOf("favourite:low_priority") >= 0 + const bI= b.labels?.indexOf("favourite:low_priority") >= 0 + if(aI == bI){ + return 0 + } + if(aI){ + return 1 + } + if(bI){ + return -1 + } + + }) + this.layers = this.layers.filter(l => !l.labels?.some(label => label === "favourite:ignore")) + console.log(">>> layer order:", this.layers.map(l => l.id).join(", ")) } async main(args: string[]): Promise { diff --git a/src/Logic/DetermineTheme.ts b/src/Logic/DetermineTheme.ts index 9da701591..33cfdb8d5 100644 --- a/src/Logic/DetermineTheme.ts +++ b/src/Logic/DetermineTheme.ts @@ -17,7 +17,7 @@ import { QuestionableTagRenderingConfigJson } from "../Models/ThemeConfig/Json/Q import { ThemeConfigJson } from "../Models/ThemeConfig/Json/ThemeConfigJson" import { ValidateThemeAndLayers } from "../Models/ThemeConfig/Conversion/ValidateThemeAndLayers" import * as theme_overview from "../assets/generated/theme_overview.json" - +import * as favourite_layer from "../../assets/layers/favourite/favourite.json" export default class DetermineTheme { private static readonly _knownImages = new Set(Array.from(licenses).map((l) => l.path)) private static readonly loadCustomThemeParam = QueryParameters.GetQueryParameter( @@ -122,6 +122,7 @@ export default class DetermineTheme { 1000 * 60 * 60 * 60 ) const withDefault = new PrepareTheme(this.createConversionContext()).convertStrict(config) + withDefault.layers.push( favourite_layer) return new ThemeConfig(withDefault, true) } @@ -180,7 +181,6 @@ export default class DetermineTheme { json = new FixLegacyTheme().convertStrict(json) const raw = json - json = new FixImages(DetermineTheme._knownImages).convertStrict(json) json.enableNoteImports = json.enableNoteImports ?? false const convertState = this.createConversionContext()