diff --git a/Logic/FeatureSource/FeaturePipeline.ts b/Logic/FeatureSource/FeaturePipeline.ts index 4eb94248a6..ba78907870 100644 --- a/Logic/FeatureSource/FeaturePipeline.ts +++ b/Logic/FeatureSource/FeaturePipeline.ts @@ -31,11 +31,12 @@ export default class FeaturePipeline implements FeatureSource { // first we metatag, then we save to get the metatags into storage too // Note that we need to register before we do metatagging (as it expects the event sources) + // AT last, the metaTagging also needs to be run _after_ the duplicatorPerLayer const amendedOverpassSource = new RememberingSource( new LocalStorageSaver( - new FeatureDuplicatorPerLayer(flayers, - new MetaTaggingFeatureSource( + new MetaTaggingFeatureSource( + new FeatureDuplicatorPerLayer(flayers, new RegisteringFeatureSource( updater) )), layout)); @@ -48,12 +49,14 @@ export default class FeaturePipeline implements FeatureSource { new RememberingSource(new RegisteringFeatureSource(new FeatureDuplicatorPerLayer(flayers, new LocalStorageSource(layout)) )); - newPoints = new MetaTaggingFeatureSource(new FeatureDuplicatorPerLayer(flayers, - new RegisteringFeatureSource(newPoints))); + newPoints = new MetaTaggingFeatureSource( + new FeatureDuplicatorPerLayer(flayers, + new RegisteringFeatureSource(newPoints))); const amendedOsmApiSource = new RememberingSource( - new FeatureDuplicatorPerLayer(flayers, - new MetaTaggingFeatureSource( + new MetaTaggingFeatureSource( + new FeatureDuplicatorPerLayer(flayers, + new RegisteringFeatureSource(fromOsmApi)))); const merged = diff --git a/Logic/MetaTagging.ts b/Logic/MetaTagging.ts index 633e9ab053..3c27663da8 100644 --- a/Logic/MetaTagging.ts +++ b/Logic/MetaTagging.ts @@ -22,12 +22,13 @@ export default class MetaTagging { * The features are a list of geojson-features, with a "properties"-field and geometry */ static addMetatags(features: { feature: any; freshness: Date }[], - relations: Map, + relations: Map, layers: LayerConfig[], includeDates = true) { + console.debug("Adding meta tags to all features") for (const metatag of SimpleMetaTagger.metatags) { - if(metatag.includesDates && !includeDates){ + if (metatag.includesDates && !includeDates) { // We do not add dated entries continue; } @@ -62,12 +63,12 @@ export default class MetaTagging { if (f === undefined) { continue; } - try{ + try { f({featuresPerLayer: featuresPerLayer, memberships: relations}, feature.feature) - }catch(e){ + } catch (e) { console.error(e) } - + } } @@ -89,19 +90,21 @@ export default class MetaTagging { } const func = new Function("feat", "return " + code + ";"); - try{ - - - const f = (featuresPerLayer, feature: any) => { - try{ - feature.properties[key] = func(feature); - }catch(e){ - console.error("Could not calculate a metatag defined by "+code+" due to "+e+". This is code defined in the theme. Are you the theme creator? Doublecheck your code. Note that the metatags might not be stable on new features") + try { + + + const f = (featuresPerLayer, feature: any) => { + try { + const result = func(feature); + console.debug("Calculated tag with code ", code, " returned ", result) + feature.properties[key] =result; + } catch (e) { + console.error("Could not calculate a metatag defined by " + code + " due to " + e + ". This is code defined in the theme. Are you the theme creator? Doublecheck your code. Note that the metatags might not be stable on new features") + } + } - - } - functions.push(f) - }catch(e){ + functions.push(f) + } catch (e) { console.error("Could not create a dynamic function: ", e) } } diff --git a/Models/Constants.ts b/Models/Constants.ts index f6f4e0fc22..1d6b053ba3 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.7.2"; + public static vNumber = "0.7.2a"; // The user journey states thresholds when a new feature gets unlocked public static userJourney = {