From 4ae35ae101d610dcbc796b2351779ba3338e193b Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 8 Apr 2024 17:05:49 +0200 Subject: [PATCH] Improvement to auto-import module for velopark --- assets/themes/velopark/velopark.json | 23 +- src/Logic/Web/LinkedDataLoader.ts | 8 +- .../ThemeConfig/Conversion/PrepareLayer.ts | 2 +- src/UI/Comparison/ComparisonAction.svelte | 226 ++++++++++-------- 4 files changed, 155 insertions(+), 104 deletions(-) diff --git a/assets/themes/velopark/velopark.json b/assets/themes/velopark/velopark.json index 5ea69929d1..c13541093e 100644 --- a/assets/themes/velopark/velopark.json +++ b/assets/themes/velopark/velopark.json @@ -266,7 +266,28 @@ }, "icons.defaults" ], - "minzoom": 8 + "minzoom": 8, + "filter+": [ + { + "id": "last_edited_before", + "options": [ + { + + + "question": { + "en": "Last edit was before {date}", + "nl": "Laatste aanpassing voor {date}" + + }, + "osmTags": "_last_edit:timestamp<{date}", + "fields": [ + { + "name": "date", + "type": "date" + } + ] + }]} + ] } }, { diff --git a/src/Logic/Web/LinkedDataLoader.ts b/src/Logic/Web/LinkedDataLoader.ts index 1ba52b3d3c..5595ee03e8 100644 --- a/src/Logic/Web/LinkedDataLoader.ts +++ b/src/Logic/Web/LinkedDataLoader.ts @@ -37,7 +37,7 @@ export default class LinkedDataLoader { "@type": "http://www.w3.org/2001/XMLSchema#time" } } - private static formatters: Record = { + private static formatters: Record<"phone" | "email" | "website", Validator> = { phone: new PhoneValidator(), email: new EmailValidator(), website: new UrlValidator(undefined, undefined, true) @@ -330,7 +330,11 @@ export default class LinkedDataLoader { delete output[source] } - on("phone", (p => new PhoneValidator().reformat(p, () => "be"))) + on("phone", (p => this.formatters["phone"].reformat(p, () => "be"))) + + for (const attribute in LinkedDataLoader.formatters) { + on(attribute, p => LinkedDataLoader.formatters[attribute].reformat(p)) + } on("charge", (p => { if(Number(p) === 0){ output["fee"] = ["no"] diff --git a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts index af8177f22f..cd2a50dbbc 100644 --- a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts +++ b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts @@ -47,7 +47,7 @@ class ExpandFilter extends DesugaringStep { } private static load_filters(): Map { - let filters = new Map() + const filters = new Map() for (const filter of predifined_filters.filter) { filters.set(filter.id, filter) } diff --git a/src/UI/Comparison/ComparisonAction.svelte b/src/UI/Comparison/ComparisonAction.svelte index e1b55235b2..6d0b39091b 100644 --- a/src/UI/Comparison/ComparisonAction.svelte +++ b/src/UI/Comparison/ComparisonAction.svelte @@ -1,117 +1,143 @@
- -
- {#if renderingExternal} - - {:else} -
- {key}{externalProperties[key]} + +
+
+ +
+ + {#if renderingExternal} + + {:else} +
+ {key}{externalProperties[key]} +
+ + {/if}
- {/if} - {#if !readonly} - {#if currentStep === "init"} - - {:else if currentStep === "applying"} - - {:else if currentStep === "done"} -
- - -
- {:else} -
- -
- {/if} - {/if} + + OSM: + {key}={$tags[key]} + + + Ext: + {key}= {externalProperties[key]} + +
+ {/if} +
-
-{#if $tags[key]} -
- - - - {#if renderingBoth} - - {:else} -
- {key} {$tags[key]} -
+ + {#if !readonly} + {#if currentStep === "init"} + + {:else if currentStep === "applying"} + + {:else if currentStep === "done"} +
+ + +
+ {:else} +
+ +
+ {/if} {/if} +
-{/if} + {#if $tags[key] && $tags[key] !== externalProperties[key]} +
+ + + + {#if renderingBoth} + + {:else} +
+ {key} {$tags[key]} +
+ {/if} +
+ {/if} +