| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  | import {LayerDefinition} from "../LayerDefinition"; | 
					
						
							|  |  |  | import {Tag} from "../../Logic/TagsFilter"; | 
					
						
							|  |  |  | import FixedText from "../Questions/FixedText"; | 
					
						
							|  |  |  | import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; | 
					
						
							| 
									
										
										
										
											2020-07-31 17:38:03 +02:00
										 |  |  | import {TagRenderingOptions} from "../TagRenderingOptions"; | 
					
						
							| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export class GhostBike extends LayerDefinition { | 
					
						
							|  |  |  |     constructor() { | 
					
						
							| 
									
										
										
										
											2020-07-31 04:58:58 +02:00
										 |  |  |         super("ghost bike"); | 
					
						
							| 
									
										
										
										
											2020-07-31 18:27:40 +02:00
										 |  |  |         this.name = "Ghost bike"; | 
					
						
							| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  |         this.overpassFilter = new Tag("memorial", "ghost_bike") | 
					
						
							|  |  |  |         this.title = new FixedText("Ghost bike"); | 
					
						
							| 
									
										
										
										
											2020-07-24 14:46:25 +02:00
										 |  |  |         this.description = "A <b>ghost bike</b> is a memorial for a cyclist who died in a traffic accident," + | 
					
						
							|  |  |  |             " in the form of a white bicycle placed permanently near the accident location."; | 
					
						
							| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-31 18:27:40 +02:00
										 |  |  |         this.minzoom = 1; | 
					
						
							| 
									
										
										
										
											2020-08-01 00:00:09 +02:00
										 |  |  |         this.icon = "./assets/bike/ghost.svg" | 
					
						
							| 
									
										
										
										
											2020-07-29 18:35:46 +02:00
										 |  |  |         this.presets = [ | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 title: "Ghost bike", | 
					
						
							|  |  |  |                 description: "Add a missing ghost bike to the map", | 
					
						
							|  |  |  |                 tags: [new Tag("historic", "memorial"), new Tag("memorial", "ghost_bike")] | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  |         this.elementsToShow = [ | 
					
						
							| 
									
										
										
										
											2020-07-24 14:46:25 +02:00
										 |  |  |             new FixedText(this.description), | 
					
						
							| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  |             new ImageCarouselWithUploadConstructor(), | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-16 09:25:20 +02:00
										 |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Whom is remembered by this ghost bike?" + | 
					
						
							|  |  |  |                     "<span class='question-subtext'>" + | 
					
						
							|  |  |  |                     "<br/>" + | 
					
						
							|  |  |  |                     "Please respect privacy - only fill out the name if it is widely published or marked on the cycle." + | 
					
						
							|  |  |  |                     "</span>", | 
					
						
							|  |  |  |                 mappings: [{k: new Tag("noname", "yes"), txt: "There is no name marked on the bike"},], | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "name", | 
					
						
							|  |  |  |                     extraTags: new Tag("noname", ""), | 
					
						
							|  |  |  |                     template: "$$$", | 
					
						
							|  |  |  |                     renderTemplate: "In the remembrance of <b>{name}</b>", | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }), | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "When was the ghost bike installed?", | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "start_date", | 
					
						
							|  |  |  |                     template: "The ghost bike was placed on $$$", // TODO create a date picker
 | 
					
						
							|  |  |  |                     renderTemplate: "The ghost bike was placed on <b>{start_date}</b>", | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }), | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "On what URL can more information be found?" + | 
					
						
							|  |  |  |                     "<span class='question-subtext'>If available, add a link to a news report about the accident or about the placing of the ghost bike</span>", | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "source", | 
					
						
							|  |  |  |                     template: "More information available on $$$", | 
					
						
							|  |  |  |                     renderTemplate: "<a href='{source}' target='_blank'>More information</a>", | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |              | 
					
						
							| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         this.style =  (tags: any) => { | 
					
						
							|  |  |  |             return { | 
					
						
							|  |  |  |                 color: "#000000", | 
					
						
							| 
									
										
										
										
											2020-07-31 18:27:40 +02:00
										 |  |  |                 icon: { | 
					
						
							| 
									
										
										
										
											2020-07-16 16:48:43 +02:00
										 |  |  |                     iconUrl: 'assets/bike/ghost.svg', | 
					
						
							| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  |                     iconSize: [40, 40], | 
					
						
							|  |  |  |                     iconAnchor: [20, 20], | 
					
						
							| 
									
										
										
										
											2020-07-31 18:27:40 +02:00
										 |  |  |                 } | 
					
						
							| 
									
										
										
										
											2020-07-14 20:18:44 +02:00
										 |  |  |             } | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-08-01 00:00:09 +02:00
										 |  |  | } |