forked from MapComplete/MapComplete
		
	Add extraLink button which replaced the iframePopout button, fix #654
This commit is contained in:
		
							parent
							
								
									e04e7ddf6a
								
							
						
					
					
						commit
						c941f567cf
					
				
					 16 changed files with 457 additions and 113 deletions
				
			
		
							
								
								
									
										31
									
								
								Models/ThemeConfig/ExtraLinkConfig.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								Models/ThemeConfig/ExtraLinkConfig.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| import ExtraLinkConfigJson from "./Json/ExtraLinkConfigJson"; | ||||
| import {Translation} from "../../UI/i18n/Translation"; | ||||
| import Translations from "../../UI/i18n/Translations"; | ||||
| 
 | ||||
| export default class ExtraLinkConfig { | ||||
|     public readonly icon?: string | ||||
|     public readonly text?: Translation | ||||
|     public readonly href: string | ||||
|     public readonly newTab?: false | boolean | ||||
|     public readonly requirements?: Set<("iframe" | "no-iframe" | "welcome-message" | "no-welcome-message")> | ||||
| 
 | ||||
|     constructor(configJson: ExtraLinkConfigJson, context) { | ||||
|         this.icon = configJson.icon | ||||
|         this.text = Translations.T(configJson.text) | ||||
|         this.href = configJson.href | ||||
|         this.newTab = configJson.newTab | ||||
|         this.requirements = new Set(configJson.requirements) | ||||
| 
 | ||||
|         for (let requirement of configJson.requirements) { | ||||
| 
 | ||||
|             if (this.requirements.has(<any>("no-" + requirement))) { | ||||
|                 throw "Conflicting requirements found for " + context + ".extraLink: both '" + requirement + "' and 'no-" + requirement + "' found" | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         if (this.icon === undefined && this.text === undefined) { | ||||
|             throw "At " + context + ".extraLink: define at least an icon or a text to show. Both are undefined, this is not allowed" | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue