forked from MapComplete/MapComplete
		
	Small fixes, add geolocation feature switch
This commit is contained in:
		
							parent
							
								
									97a69ff903
								
							
						
					
					
						commit
						de9bb13568
					
				
					 6 changed files with 38 additions and 6 deletions
				
			
		
							
								
								
									
										24
									
								
								Customizations/JSON/TagRenderingParser.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								Customizations/JSON/TagRenderingParser.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					import {TagRenderingOptions} from "../TagRenderingOptions";
 | 
				
			||||||
 | 
					import {LayerDefinition} from "../LayerDefinition";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export class CustomizationFromJSON {
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public exampleLayer = {
 | 
				
			||||||
 | 
					        id: "bookcases",
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					    public static LayerFromJson(spec: any) : LayerDefinition{
 | 
				
			||||||
 | 
					        return new LayerDefinition(spec.id,{
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
 | 
					    public static TagRenderingOptionsFromJson(spec: any) : TagRenderingOptions{
 | 
				
			||||||
 | 
					        return new TagRenderingOptions(spec);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -41,6 +41,7 @@ export class Layout {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public widenFactor: number = 0.07;
 | 
					    public widenFactor: number = 0.07;
 | 
				
			||||||
    public defaultBackground: string = "osm";
 | 
					    public defaultBackground: string = "osm";
 | 
				
			||||||
 | 
					    public enableGeolocation: boolean = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 
 | 
					     * 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,14 +79,18 @@ export class GeoLocationHandler extends UIElement {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    InnerRender(): string {
 | 
					    InnerRender(): string {
 | 
				
			||||||
        if (this._hasLocation.data) {
 | 
					        if(!State.state.featureSwitchGeolocation.data){
 | 
				
			||||||
            return "<img src='assets/crosshair-blue.png' alt='locate me'>";
 | 
					            return "";
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (this._isActive.data) {
 | 
					 | 
				
			||||||
            return "<img src='assets/crosshair-blue-center.png' alt='locate me'>";
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        return "<img src='assets/crosshair.png' alt='locate me'>";
 | 
					        if (this._hasLocation.data) {
 | 
				
			||||||
 | 
					            return "<img src='assets/crosshair-blue.svg' alt='locate me'>";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (this._isActive.data) {
 | 
				
			||||||
 | 
					            return "<img src='assets/crosshair-blue-center.svg' alt='locate me'>";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return "<img src='assets/crosshair.svg' alt='locate me'>";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								State.ts
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								State.ts
									
										
									
									
									
								
							| 
						 | 
					@ -93,6 +93,7 @@ export class State {
 | 
				
			||||||
    public readonly featureSwitchIframe: UIEventSource<boolean>;
 | 
					    public readonly featureSwitchIframe: UIEventSource<boolean>;
 | 
				
			||||||
    public readonly featureSwitchMoreQuests: UIEventSource<boolean>;
 | 
					    public readonly featureSwitchMoreQuests: UIEventSource<boolean>;
 | 
				
			||||||
    public readonly featureSwitchShareScreen: UIEventSource<boolean>;
 | 
					    public readonly featureSwitchShareScreen: UIEventSource<boolean>;
 | 
				
			||||||
 | 
					    public readonly featureSwitchGeolocation: UIEventSource<boolean>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					@ -152,6 +153,7 @@ export class State {
 | 
				
			||||||
        this.featureSwitchIframe = featSw("fs-iframe", () => false);
 | 
					        this.featureSwitchIframe = featSw("fs-iframe", () => false);
 | 
				
			||||||
        this.featureSwitchMoreQuests = featSw("fs-more-quests", () => layoutToUse?.enableMoreQuests);
 | 
					        this.featureSwitchMoreQuests = featSw("fs-more-quests", () => layoutToUse?.enableMoreQuests);
 | 
				
			||||||
        this.featureSwitchShareScreen = featSw("fs-share-screen", () => layoutToUse?.enableShareScreen);
 | 
					        this.featureSwitchShareScreen = featSw("fs-share-screen", () => layoutToUse?.enableShareScreen);
 | 
				
			||||||
 | 
					        this.featureSwitchGeolocation = featSw("fs-geolocation", () => layoutToUse?.enableGeolocation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.osmConnection = new OsmConnection(
 | 
					        this.osmConnection = new OsmConnection(
 | 
				
			||||||
            QueryParameters.GetQueryParameter("test", "false").data === "true",
 | 
					            QueryParameters.GetQueryParameter("test", "false").data === "true",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,7 +97,8 @@ export class ShareScreen extends UIElement {
 | 
				
			||||||
            {urlName: "fs-search", human: "Enable search bar"},
 | 
					            {urlName: "fs-search", human: "Enable search bar"},
 | 
				
			||||||
            {urlName: "fs-welcome-message", human: "Enable the welcome message"},
 | 
					            {urlName: "fs-welcome-message", human: "Enable the welcome message"},
 | 
				
			||||||
            {urlName: "fs-layers", human: "Enable layer control"},
 | 
					            {urlName: "fs-layers", human: "Enable layer control"},
 | 
				
			||||||
            {urlName: "fs-add-new", human: "Enable the 'add new POI' button"}
 | 
					            {urlName: "fs-add-new", human: "Enable the 'add new POI' button"},
 | 
				
			||||||
 | 
					            {urlName: "fs-geolocation", human: "Enable the 'geolocate-me' button"}
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -137,7 +138,7 @@ export class ShareScreen extends UIElement {
 | 
				
			||||||
        this._iframeCode = new VariableUiElement(
 | 
					        this._iframeCode = new VariableUiElement(
 | 
				
			||||||
            url.map((url) => {
 | 
					            url.map((url) => {
 | 
				
			||||||
                return `<span class='literal-code iframe-code-block'>
 | 
					                return `<span class='literal-code iframe-code-block'>
 | 
				
			||||||
                        <iframe src="${url}" style="width:100%;height:100%" title="${layout.name} with MapComplete"></iframe> 
 | 
					                        <iframe src="${url}" width="100%" height="100%" title="${layout.name} with MapComplete"></iframe> 
 | 
				
			||||||
                    </span>`
 | 
					                    </span>`
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								index.ts
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								index.ts
									
										
									
									
									
								
							| 
						 | 
					@ -166,7 +166,7 @@ InitUiElements.OnlyIf(State.state.featureSwitchWelcomeMessage, () => {
 | 
				
			||||||
    InitUiElements.InitWelcomeMessage()
 | 
					    InitUiElements.InitWelcomeMessage()
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ((window != window.top && !State.state.featureSwitchWelcomeMessage) || State.state.featureSwitchIframe.data) {
 | 
					if ((window != window.top && !State.state.featureSwitchWelcomeMessage.data) || State.state.featureSwitchIframe.data) {
 | 
				
			||||||
    new FixedUiElement(`<a href='${window.location}' target='_blank'><span class='iframe-escape'><img src='assets/pop-out.svg'></span></a>`).AttachTo("top-right")
 | 
					    new FixedUiElement(`<a href='${window.location}' target='_blank'><span class='iframe-escape'><img src='assets/pop-out.svg'></span></a>`).AttachTo("top-right")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue