Bike pump updates

This commit is contained in:
Pieter Vander Vennet 2020-07-16 09:25:20 +02:00
parent 9e43be6a07
commit bb61f7777f
5 changed files with 95 additions and 36 deletions

View file

@ -1,10 +1,9 @@
import {LayerDefinition} from "../LayerDefinition"; import {LayerDefinition} from "../LayerDefinition";
import {And, Or, Tag} from "../../Logic/TagsFilter"; import {And, Or, Tag} from "../../Logic/TagsFilter";
import {OperatorTag} from "../Questions/OperatorTag";
import * as L from "leaflet"; import * as L from "leaflet";
import { PumpManual } from "../Questions/PumpManual";
import FixedText from "../Questions/FixedText"; import FixedText from "../Questions/FixedText";
import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload";
import {TagRenderingOptions} from "../TagRendering";
export class BikePumps extends LayerDefinition { export class BikePumps extends LayerDefinition {
@ -14,12 +13,21 @@ export class BikePumps extends LayerDefinition {
this.icon = "./assets/bike_pump.svg"; this.icon = "./assets/bike_pump.svg";
this.overpassFilter = this.overpassFilter =
new And([ new Or([
new Tag("amenity", "bicycle_repair_station"), new And([
new Tag("service:bicycle:pump", "yes"), new Tag("amenity", "compressed_air"),
new Tag("bicycle", "yes")
]),
new And([
new Tag("amenity", "bicycle_repair_station"),
new Tag("service:bicycle:pump", "yes"),
/* new Or([
new Tag("service:bicycle:tools", ""),
new Tag("service:bicycle:tools", "no"),
])*/
]),
]); ]);
this.newElementTags = [ this.newElementTags = [
new Tag("amenity", "bicycle_repair_station"), new Tag("amenity", "bicycle_repair_station"),
new Tag("service:bicycle:pump", "yes"), new Tag("service:bicycle:pump", "yes"),
@ -44,10 +52,51 @@ export class BikePumps extends LayerDefinition {
this.title = new FixedText("Pomp"); this.title = new FixedText("Pomp");
this.elementsToShow = [ this.elementsToShow = [
new ImageCarouselWithUploadConstructor(), new ImageCarouselWithUploadConstructor(),
// new NameQuestion(),
// new AccessTag(), new TagRenderingOptions({
new OperatorTag(), question: "What valves are supported?",
new PumpManual() mappings: [
{
k: new Tag("valves", " sclaverand;schrader;dunlop"),
txt: "There is a default head, so Presta, Dunlop and Auto"
},
{k: new Tag("valves", "dunlop"), txt: "Only dunlop"},
{k: new Tag("valves", "sclaverand"), txt: "Only Sclaverand (also known as Dunlop)"},
{k: new Tag("valves", "auto"), txt: "Only auto"},
],
freeform: {
key: "valves",
template: "Supported valves are $$$",
renderTemplate: "Supported valves are {valves}"
}
}),
new TagRenderingOptions({
question: "Who maintains this bicycle pump?",
freeform: {
key: "operator",
template: "Maintained by $$$",
renderTemplate: "Maintained by {operator}",
placeholder: "operator"
}
}),
new TagRenderingOptions({
question: "Does the pump have a pressure indicator or manometer?",
mappings: [
{k: new Tag("manometer", "yes"), txt: "Yes, there is a manometer"},
{k: new Tag("manometer", "yes"), txt: "No"}
]
}),
/* new TagRenderingOptions({
question: "Is dit een manuele pomp?",
mappings: [
{k: new Tag("manual", "yes"), txt: "Manuele pomp"},
{k: new Tag("manual", "no"), txt: "Automatische pomp"}
]
}) */
]; ];
} }

View file

@ -18,6 +18,39 @@ export class GhostBike extends LayerDefinition {
" in the form of a white bicycle placed permanently near the accident location."), " in the form of a white bicycle placed permanently near the accident location."),
new ImageCarouselWithUploadConstructor(), new ImageCarouselWithUploadConstructor(),
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>",
}
}),
]; ];

View file

@ -1,23 +0,0 @@
import {TagRenderingOptions} from "../TagRendering";
import {UIEventSource} from "../../UI/UIEventSource";
import {Changes} from "../../Logic/Changes";
import {Tag} from "../../Logic/TagsFilter";
export class PumpManual extends TagRenderingOptions {
private static options = {
priority: 5,
question: "Is dit een manuele pomp?",
mappings: [
{k: new Tag("manual", "yes"), txt: "Manuele pomp"},
{k: new Tag("manual", "no"), txt: "Automatische pomp"}
]
}
constructor() {
super(PumpManual.options);
}
}

View file

@ -23,10 +23,10 @@
</div> </div>
<div id="topleft-tools"> <div id="topleft-tools">
Loading... If this message persists, check if javascript is enabled and if no extension (uMatrix) is
blocking it.
<div id="userbadge-and-search"> <div id="userbadge-and-search">
<div id="userbadge"> <div id="userbadge">
Loading... If this message persists, check if javascript is enabled and if no extension (uMatrix) is
blocking it.
</div> </div>
<br/> <br/>
<div id="searchbox"></div> <div id="searchbox"></div>

View file

@ -80,7 +80,7 @@ if (window.location.search) {
} }
if (paramDict.layout) { if (paramDict.layout) {
defaultLayout = paramDict.quests defaultLayout = paramDict.layout
} }
if (paramDict.test) { if (paramDict.test) {