Add debugging-featureswitch which toggles an overview of all tags

This commit is contained in:
pietervdvn 2021-03-22 01:05:01 +01:00
parent 0dce7b1f3b
commit 2dcc5b21f5
3 changed files with 15 additions and 6 deletions

View file

@ -390,8 +390,8 @@ export class InitUiElements {
if (featuresFreshness === undefined) { if (featuresFreshness === undefined) {
return; return;
} }
let features = featuresFreshness.map(ff => ff.feature); featuresFreshness.forEach(featureFresh => {
features.forEach(feature => { const feature = featureFresh.feature;
State.state.allElements.addOrGetElement(feature); State.state.allElements.addOrGetElement(feature);
if (Hash.hash.data === feature.properties.id) { if (Hash.hash.data === feature.properties.id) {
@ -399,7 +399,7 @@ export class InitUiElements {
} }
}) })
MetaTagging.addMetatags(features); MetaTagging.addMetatags(featuresFreshness);
}) })
new ShowDataLayer(source.features, State.state.leafletMap, new ShowDataLayer(source.features, State.state.leafletMap,

View file

@ -1,4 +1,3 @@
import {UIElement} from "./UI/UIElement";
import {Utils} from "./Utils"; import {Utils} from "./Utils";
import {ElementStorage} from "./Logic/ElementStorage"; import {ElementStorage} from "./Logic/ElementStorage";
import {Changes} from "./Logic/Osm/Changes"; import {Changes} from "./Logic/Osm/Changes";
@ -8,7 +7,6 @@ import {UIEventSource} from "./Logic/UIEventSource";
import {LocalStorageSource} from "./Logic/Web/LocalStorageSource"; import {LocalStorageSource} from "./Logic/Web/LocalStorageSource";
import {QueryParameters} from "./Logic/Web/QueryParameters"; import {QueryParameters} from "./Logic/Web/QueryParameters";
import LayoutConfig from "./Customizations/JSON/LayoutConfig"; import LayoutConfig from "./Customizations/JSON/LayoutConfig";
import Hash from "./Logic/Web/Hash";
import {MangroveIdentity} from "./Logic/Web/MangroveReviews"; import {MangroveIdentity} from "./Logic/Web/MangroveReviews";
import InstalledThemes from "./Logic/Actors/InstalledThemes"; import InstalledThemes from "./Logic/Actors/InstalledThemes";
import BaseLayer from "./Models/BaseLayer"; import BaseLayer from "./Models/BaseLayer";
@ -89,6 +87,7 @@ export default class State {
public readonly featureSwitchShareScreen: UIEventSource<boolean>; public readonly featureSwitchShareScreen: UIEventSource<boolean>;
public readonly featureSwitchGeolocation: UIEventSource<boolean>; public readonly featureSwitchGeolocation: UIEventSource<boolean>;
public readonly featureSwitchIsTesting: UIEventSource<boolean>; public readonly featureSwitchIsTesting: UIEventSource<boolean>;
public readonly featureSwitchIsDebugging: UIEventSource<boolean>;
/** /**
@ -194,6 +193,10 @@ export default class State {
this.featureSwitchIsTesting = QueryParameters.GetQueryParameter("test", "false", this.featureSwitchIsTesting = QueryParameters.GetQueryParameter("test", "false",
"If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org") "If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org")
.map(str => str === "true", [], b => "" + b); .map(str => str === "true", [], b => "" + b);
this.featureSwitchIsDebugging = QueryParameters.GetQueryParameter("debug","false",
"If true, shows some extra debugging help such as all the available tags on every object")
.map(str => str === "true", [], b => "" + b)
} }

View file

@ -9,6 +9,7 @@ import State from "../../State";
import TagRenderingConfig from "../../Customizations/JSON/TagRenderingConfig"; import TagRenderingConfig from "../../Customizations/JSON/TagRenderingConfig";
import ScrollableFullScreen from "../Base/ScrollableFullScreen"; import ScrollableFullScreen from "../Base/ScrollableFullScreen";
import {Utils} from "../../Utils"; import {Utils} from "../../Utils";
import {Tag} from "../../Logic/Tags";
export default class FeatureInfoBox extends ScrollableFullScreen { export default class FeatureInfoBox extends ScrollableFullScreen {
@ -54,7 +55,7 @@ export default class FeatureInfoBox extends ScrollableFullScreen {
} }
let questionBoxIsUsed = false; let questionBoxIsUsed = false;
const renderings = layerConfig.tagRenderings.map((tr,i) => { const renderings = layerConfig.tagRenderings.map(tr => {
if (tr.question === null) { if (tr.question === null) {
// This is the question box! // This is the question box!
questionBoxIsUsed = true; questionBoxIsUsed = true;
@ -65,6 +66,11 @@ export default class FeatureInfoBox extends ScrollableFullScreen {
if (!questionBoxIsUsed) { if (!questionBoxIsUsed) {
renderings.push(questionBox); renderings.push(questionBox);
} }
if(State.state.featureSwitchIsDebugging.data){
const config: TagRenderingConfig = new TagRenderingConfig({render:"{all_tags()}"}, new Tag("id",""), "");
renderings.push(new TagRenderingAnswer(tags,config ))
}
return new Combine(renderings).SetClass("block") return new Combine(renderings).SetClass("block")