Add feature switch to disable the cache, partial fix to make GRB theme workable again

This commit is contained in:
Pieter Vander Vennet 2024-08-02 13:32:47 +02:00
parent 0a7d48de5b
commit fda88fcccf
8 changed files with 47 additions and 31 deletions

View file

@ -450,4 +450,14 @@ export interface LayoutConfigJson {
* iftrue: Do not write 'change_within_x_m' and do not indicate that this was done by survey
*/
enableMorePrivacy: boolean
/**
* question: Should this theme have the cache enabled?
*
* Should only be dissabled in highly specific cases, such as the GRB-theme
*
* ifunset: Cache is enabled
* iffalse: Do not cache data
* group: hidden
*/
enableCache?: true | boolean
}

View file

@ -81,6 +81,7 @@ export default class LayoutConfig implements LayoutInformation {
private readonly layersDict: Map<string, LayerConfig>
private readonly source: LayoutConfigJson
public readonly enableCache: boolean
constructor(
json: LayoutConfigJson,
@ -98,6 +99,7 @@ export default class LayoutConfig implements LayoutInformation {
this.id = json.id
this.definedAtUrl = options?.definedAtUrl
this.definitionRaw = options?.definitionRaw
this.enableCache = json.enableCache ?? true
if (official) {
if (json.id.toLowerCase() !== json.id) {
throw "The id of a theme should be lowercase: " + json.id

View file

@ -204,7 +204,6 @@ export default class ThemeViewState implements SpecialVisualizationState {
this.osmConnection.isLoggedIn
)
const self = this
this.layerState = new LayerState(
this.osmConnection,
layout.layers,
@ -241,7 +240,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
this.featureSwitches,
this.mapProperties,
this.osmConnection.Backend(),
(id) => self.layerState.filteredLayers.get(id).isDisplayed,
(id) => this.layerState.filteredLayers.get(id).isDisplayed,
mvtAvailableLayers,
this.fullNodeDatabase
)
@ -316,7 +315,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
}
const floors = new Set<string>()
for (const feature of features) {
let level = feature.properties["_level"]
const level = feature.properties["_level"]
if (level) {
const levels = level.split(";")
for (const l of levels) {
@ -379,7 +378,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
this.featureSummary = this.setupSummaryLayer(
new LayerConfig(<LayerConfigJson>summaryLayer, "summaryLayer", true)
)
this.toCacheSavers = this.initSaveToLocalStorage()
this.toCacheSavers = layout.enableCache ? this.initSaveToLocalStorage() : undefined
this.initActors()
this.drawSpecialLayers()
this.initHotkeys()