From 38d6616b4a83a4d62569fa3fd7a71af0143e4015 Mon Sep 17 00:00:00 2001 From: Pieter Fiers Date: Thu, 16 Jul 2020 15:29:50 +0200 Subject: [PATCH] Added bike assests + naming consistency --- Customizations/Layers/BikeParkings.ts | 2 +- .../{BikeServices.ts => BikeStations.ts} | 31 ++-- Customizations/Layouts/Cyclofix.ts | 6 +- Customizations/Questions/BikeParkingType.ts | 28 --- Customizations/Questions/BikeStationChain.ts | 18 -- .../Questions/BikeStationOperator.ts | 26 --- .../Questions/BikeStationPumpTools.ts | 19 -- Customizations/Questions/BikeStationStand.ts | 18 -- Customizations/Questions/PumpManual.ts | 18 -- Customizations/Questions/bike/ParkingType.ts | 38 ++++ .../PumpManometer.ts} | 14 +- Customizations/Questions/bike/PumpManual.ts | 16 ++ .../PumpOperationalStatus.ts} | 10 +- .../{BikePumpValves.ts => bike/PumpValves.ts} | 9 +- .../StationBrand.ts} | 9 +- Customizations/Questions/bike/StationChain.ts | 16 ++ .../Questions/bike/StationOperator.ts | 25 +++ .../Questions/bike/StationPumpTools.ts | 17 ++ Customizations/Questions/bike/StationStand.ts | 16 ++ assets/bike/cafe.svg | 23 +++ assets/bike/ghost.svg | 44 +++++ assets/bike/other_services.svg | 5 + assets/bike/parking.svg | 93 ++++++++++ assets/bike/place_with_pump.svg | 28 +++ assets/bike/pump.svg | 27 +++ assets/bike/pump_broken.svg | 29 ++++ assets/bike/repair_shop.svg | 21 +++ assets/bike/repair_station.svg | 61 +++++++ assets/bike/repair_station_pump.svg | 82 +++++++++ assets/bike/shop.svg | 164 ++++++++++++++++++ 30 files changed, 744 insertions(+), 169 deletions(-) rename Customizations/Layers/{BikeServices.ts => BikeStations.ts} (73%) delete mode 100644 Customizations/Questions/BikeParkingType.ts delete mode 100644 Customizations/Questions/BikeStationChain.ts delete mode 100644 Customizations/Questions/BikeStationOperator.ts delete mode 100644 Customizations/Questions/BikeStationPumpTools.ts delete mode 100644 Customizations/Questions/BikeStationStand.ts delete mode 100644 Customizations/Questions/PumpManual.ts create mode 100644 Customizations/Questions/bike/ParkingType.ts rename Customizations/Questions/{BikePumpManometer.ts => bike/PumpManometer.ts} (67%) create mode 100644 Customizations/Questions/bike/PumpManual.ts rename Customizations/Questions/{BikePumpOperationalStatus.ts => bike/PumpOperationalStatus.ts} (62%) rename Customizations/Questions/{BikePumpValves.ts => bike/PumpValves.ts} (82%) rename Customizations/Questions/{BikeStationBrand.ts => bike/StationBrand.ts} (73%) create mode 100644 Customizations/Questions/bike/StationChain.ts create mode 100644 Customizations/Questions/bike/StationOperator.ts create mode 100644 Customizations/Questions/bike/StationPumpTools.ts create mode 100644 Customizations/Questions/bike/StationStand.ts create mode 100644 assets/bike/cafe.svg create mode 100644 assets/bike/ghost.svg create mode 100644 assets/bike/other_services.svg create mode 100644 assets/bike/parking.svg create mode 100644 assets/bike/place_with_pump.svg create mode 100644 assets/bike/pump.svg create mode 100644 assets/bike/pump_broken.svg create mode 100644 assets/bike/repair_shop.svg create mode 100644 assets/bike/repair_station.svg create mode 100644 assets/bike/repair_station_pump.svg create mode 100644 assets/bike/shop.svg diff --git a/Customizations/Layers/BikeParkings.ts b/Customizations/Layers/BikeParkings.ts index edc6a26..c026c16 100644 --- a/Customizations/Layers/BikeParkings.ts +++ b/Customizations/Layers/BikeParkings.ts @@ -3,7 +3,7 @@ import {And, Or, Tag} from "../../Logic/TagsFilter"; import {OperatorTag} from "../Questions/OperatorTag"; import * as L from "leaflet"; import FixedText from "../Questions/FixedText"; -import { BikeParkingType } from "../Questions/BikeParkingType"; +import { BikeParkingType } from "../Questions/bike/ParkingType"; import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; export class BikeParkings extends LayerDefinition { diff --git a/Customizations/Layers/BikeServices.ts b/Customizations/Layers/BikeStations.ts similarity index 73% rename from Customizations/Layers/BikeServices.ts rename to Customizations/Layers/BikeStations.ts index e79ff33..b02eb30 100644 --- a/Customizations/Layers/BikeServices.ts +++ b/Customizations/Layers/BikeStations.ts @@ -1,20 +1,19 @@ import {LayerDefinition} from "../LayerDefinition"; import {And, Tag, TagsFilter} from "../../Logic/TagsFilter"; import * as L from "leaflet"; -import BikeStationChain from "../Questions/BikeStationChain"; -import BikeStationPumpTools from "../Questions/BikeStationPumpTools"; -import BikeStationStand from "../Questions/BikeStationStand"; -import PumpManual from "../Questions/PumpManual"; -import BikeStationOperator from "../Questions/BikeStationOperator"; -import BikeStationBrand from "../Questions/BikeStationBrand"; +import BikeStationChain from "../Questions/bike/StationChain"; +import BikeStationPumpTools from "../Questions/bike/StationPumpTools"; +import BikeStationStand from "../Questions/bike/StationStand"; +import PumpManual from "../Questions/bike/PumpManual"; +import BikeStationOperator from "../Questions/bike/StationOperator"; +import BikeStationBrand from "../Questions/bike/StationBrand"; import FixedText from "../Questions/FixedText"; -import {BikePumpManometer} from "../Questions/BikePumpManometer"; +import PumpManometer from "../Questions/bike/PumpManometer"; import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; -import {BikePumpOperationalStatus} from "../Questions/BikePumpOperationalStatus"; - -export default class BikeServices extends LayerDefinition { +import BikePumpOperationalStatus from "../Questions/bike/PumpOperationalStatus"; +export default class BikeStations extends LayerDefinition { private readonly pump: TagsFilter = new Tag("service:bicycle:pump", "yes"); private readonly tools: TagsFilter = new Tag("service:bicycle:tools", "yes"); @@ -37,24 +36,20 @@ export default class BikeServices extends LayerDefinition { this.style = this.generateStyleFunction(); this.title = new FixedText("Bike station"); - this.elementsToShow = [ - new ImageCarouselWithUploadConstructor(), - new BikeStationPumpTools(), new BikeStationChain().OnlyShowIf(this.tools), new BikeStationStand().OnlyShowIf(this.tools), new PumpManual().OnlyShowIf(this.pump), - new BikePumpManometer().OnlyShowIf(this.pump), + new PumpManometer().OnlyShowIf(this.pump), new BikePumpOperationalStatus().OnlyShowIf(this.pump), new BikeStationOperator(), - new BikeStationBrand() + // new BikeStationBrand() DISABLED ]; - } private generateStyleFunction() { @@ -65,11 +60,11 @@ export default class BikeServices extends LayerDefinition { const iconUrl = onlyPump ? "./assets/pump.svg" : "./assets/wrench.svg" return { color: "#00bb00", - icon: new L.icon({ + icon: L.icon({ iconUrl: iconUrl, iconSize: [40, 40] }) }; }; } -} \ No newline at end of file +} diff --git a/Customizations/Layouts/Cyclofix.ts b/Customizations/Layouts/Cyclofix.ts index 26b4588..62bd466 100644 --- a/Customizations/Layouts/Cyclofix.ts +++ b/Customizations/Layouts/Cyclofix.ts @@ -1,16 +1,16 @@ import {Layout} from "../Layout"; -import {GrbToFix} from "../Layers/GrbToFix"; import { BikeParkings } from "../Layers/BikeParkings"; import BikeServices from "../Layers/BikeServices"; import {GhostBike} from "../Layers/GhostBike"; + export default class Cyclofix extends Layout { constructor() { super( "pomp", "Cyclofix bicycle infrastructure", // [new BikePumps()], - [new GhostBike(), new BikeParkings(), new BikeServices()], + [new BikeParkings(), new BikeServices()], 16, 50.8465573, 4.3516970, @@ -27,4 +27,4 @@ export default class Cyclofix extends Layout { , "", ""); } -} \ No newline at end of file +} diff --git a/Customizations/Questions/BikeParkingType.ts b/Customizations/Questions/BikeParkingType.ts deleted file mode 100644 index ebd7d57..0000000 --- a/Customizations/Questions/BikeParkingType.ts +++ /dev/null @@ -1,28 +0,0 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; - - -export class BikeParkingType extends TagRenderingOptions { - private static options = { - priority: 5, - question: "Van welk type is deze fietsenparking?", - freeform: { - key: "bicycle_parking", - extraTags: new Tag("fixme", "Freeform bicycle_parking= tag used: possibly a wrong value"), - template: "Iets anders: $$$", - renderTemplate: "Dit is een fietsenparking van het type: {bicycle_parking}", - placeholder: "Specifieer" - }, - mappings: [ - {k: new Tag("bicycle_parking", "stands"), txt: ""}, - {k: new Tag("bicycle_parking", "wall_loops"), txt: ""}, - {k: new Tag("bicycle_parking", "handlebar_holder"), txt: ""}, - {k: new Tag("bicycle_parking", "shed"), txt: ""}, - {k: new Tag("bicycle_parking", "two-tier"), txt: ""} - ] - } - - constructor() { - super(BikeParkingType.options); - } -} diff --git a/Customizations/Questions/BikeStationChain.ts b/Customizations/Questions/BikeStationChain.ts deleted file mode 100644 index 280c18b..0000000 --- a/Customizations/Questions/BikeStationChain.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; - - -export default class BikeStationChain extends TagRenderingOptions { - private static options = { - priority: 5, - question: "Does this bike station have a special tool to repair your bike chain?", - mappings: [ - {k: new Tag("service:bicycle:chain_tool", "yes"), txt: "There is a chain tool."}, - {k: new Tag("service:bicycle:chain_tool", "no"), txt: "There is no chain tool."}, - ] - } - - constructor() { - super(BikeStationChain.options); - } -} diff --git a/Customizations/Questions/BikeStationOperator.ts b/Customizations/Questions/BikeStationOperator.ts deleted file mode 100644 index ab205f8..0000000 --- a/Customizations/Questions/BikeStationOperator.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; - -export default class BikeStationOperator extends TagRenderingOptions { - private static options = { - priority: 15, - question: "Who operates this bike station (name of university, shop, city...)?", - freeform: { - key: "operator", - template: "This bike station is operated by $$$", - renderTemplate: "This bike station is operated by {operator}", - placeholder: "organisatie" - }, - mappings: [ - {k: new Tag("operator", "KU Leuven"), txt: "KU Leuven"}, - {k: new Tag("operator", "Stad Halle"), txt: "Stad Halle"}, - {k: new Tag("operator", "Saint Gilles - Sint Gillis"), txt: "Saint Gilles - Sint Gillis"}, - {k: new Tag("operator", "Jette"), txt: "Jette"}, - {k: new Tag("operator", "private"), txt: "Beheer door een privépersoon"} - ] - } - - constructor() { - super(BikeStationOperator.options); - } -} diff --git a/Customizations/Questions/BikeStationPumpTools.ts b/Customizations/Questions/BikeStationPumpTools.ts deleted file mode 100644 index b0a40cb..0000000 --- a/Customizations/Questions/BikeStationPumpTools.ts +++ /dev/null @@ -1,19 +0,0 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag, And} from "../../Logic/TagsFilter"; - - -export default class BikeStationPumpTools extends TagRenderingOptions { - private static options = { - priority: 15, - question: "Which services are available at this bike station?", - mappings: [ - {k: new And([new Tag("service:bicycle:tools", "no"), new Tag("service:bicycle:pump", "yes")]), txt: "There is only a pump available."}, - {k: new And([new Tag("service:bicycle:tools", "yes"), new Tag("service:bicycle:pump", "no")]), txt: "There are only tools (screwdrivers, pliers...) available."}, - {k: new And([new Tag("service:bicycle:tools", "yes"), new Tag("service:bicycle:pump", "yes")]), txt: "There are both tools and a pump available."} - ] - } - - constructor() { - super(BikeStationPumpTools.options); - } -} diff --git a/Customizations/Questions/BikeStationStand.ts b/Customizations/Questions/BikeStationStand.ts deleted file mode 100644 index 5a6ef35..0000000 --- a/Customizations/Questions/BikeStationStand.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; - - -export default class BikeStationStand extends TagRenderingOptions { - private static options = { - priority: 10, - question: "Does this bike station have a hook to suspend your bike with or a stand to elevate it?", - mappings: [ - {k: new Tag("service:bicycle:stand", "yes"), txt: "There is a hook or stand."}, - {k: new Tag("service:bicycle:stand", "no"), txt: "There is no hook or stand"}, - ] - } - - constructor() { - super(BikeStationStand.options); - } -} diff --git a/Customizations/Questions/PumpManual.ts b/Customizations/Questions/PumpManual.ts deleted file mode 100644 index 26bd36e..0000000 --- a/Customizations/Questions/PumpManual.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; - - -export default class PumpManual extends TagRenderingOptions { - private static options = { - priority: 5, - question: "Is the pump at this bike station manual or automatic (compressed air)?", - mappings: [ - {k: new Tag("manual", "yes"), txt: "Manual"}, - {k: new Tag("manual", "no"), txt: "Automatic (with compressed air)"} - ] - } - - constructor() { - super(PumpManual.options); - } -} diff --git a/Customizations/Questions/bike/ParkingType.ts b/Customizations/Questions/bike/ParkingType.ts new file mode 100644 index 0000000..4b5074f --- /dev/null +++ b/Customizations/Questions/bike/ParkingType.ts @@ -0,0 +1,38 @@ +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; + + +export default class ParkingType extends TagRenderingOptions { + private static images = { + stands: "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dc/Bike_racks_at_north-west_of_Westfield_-_geograph.org.uk_-_1041057.jpg/100px-Bike_racks_at_north-west_of_Westfield_-_geograph.org.uk_-_1041057.jpg", + wall_loops: "https://wiki.openstreetmap.org/w/images/thumb/c/c2/Bike-parking-wheelbender.jpg/100px-Bike-parking-wheelbender.jpg", + handlebar_holder: "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Bicycle_parking_handlebar_holder.jpg/100px-Bicycle_parking_handlebar_holder.jpg", + shed: "https://wiki.openstreetmap.org/w/images/thumb/b/b2/Bike-shelter.jpg/100px-Bike-shelter.jpg", + "two-tier": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Bicis_a_l%27estaci%C3%B3_de_Leiden.JPG/100px-Bicis_a_l%27estaci%C3%B3_de_Leiden.JPG" + } + + private static toImgTxt(url: string) { + return `` + } + + constructor() { + super({ + priority: 5, + question: "Van welk type is deze fietsenparking?", + freeform: { + key: "bicycle_parking", + extraTags: new Tag("fixme", "Freeform bicycle_parking= tag used: possibly a wrong value"), + template: "Iets anders: $$$", + renderTemplate: "Dit is een fietsenparking van het type: {bicycle_parking}", + placeholder: "Specifieer" + }, + mappings: [ + {k: new Tag("bicycle_parking", "stands"), txt: ParkingType.toImgTxt(ParkingType.images.stands)}, + {k: new Tag("bicycle_parking", "wall_loops"), txt: ParkingType.toImgTxt(ParkingType.images.wall_loops)}, + {k: new Tag("bicycle_parking", "handlebar_holder"), txt: ParkingType.toImgTxt(ParkingType.images.handlebar_holder)}, + {k: new Tag("bicycle_parking", "shed"), txt: ParkingType.toImgTxt(ParkingType.images.shed)}, + {k: new Tag("bicycle_parking", "two-tier"), txt: ParkingType.toImgTxt(ParkingType.images["two-tier"])} + ] + }); + } +} diff --git a/Customizations/Questions/BikePumpManometer.ts b/Customizations/Questions/bike/PumpManometer.ts similarity index 67% rename from Customizations/Questions/BikePumpManometer.ts rename to Customizations/Questions/bike/PumpManometer.ts index 919bd5a..bc97a03 100644 --- a/Customizations/Questions/BikePumpManometer.ts +++ b/Customizations/Questions/bike/PumpManometer.ts @@ -1,8 +1,8 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; -export class BikePumpManometer extends TagRenderingOptions{ +export default class PumpManometer extends TagRenderingOptions { constructor() { super({ question: "Does the pump have a pressure indicator or manometer?", @@ -11,10 +11,6 @@ export class BikePumpManometer extends TagRenderingOptions{ {k: new Tag("manometer","broken"), txt: "Yes, but it is broken"}, {k: new Tag("manometer", "yes"), txt: "No"} ] - - }); - + }); } - - -} \ No newline at end of file +} diff --git a/Customizations/Questions/bike/PumpManual.ts b/Customizations/Questions/bike/PumpManual.ts new file mode 100644 index 0000000..18b79e6 --- /dev/null +++ b/Customizations/Questions/bike/PumpManual.ts @@ -0,0 +1,16 @@ +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; + + +export default class PumpManual extends TagRenderingOptions { + constructor() { + super({ + priority: 5, + question: "Is this an electric bike pump?", + mappings: [ + {k: new Tag("manual", "yes"), txt: "Manual pump"}, + {k: new Tag("manual", "no"), txt: "Electric pump"} + ] + }); + } +} diff --git a/Customizations/Questions/BikePumpOperationalStatus.ts b/Customizations/Questions/bike/PumpOperationalStatus.ts similarity index 62% rename from Customizations/Questions/BikePumpOperationalStatus.ts rename to Customizations/Questions/bike/PumpOperationalStatus.ts index 37933af..0ebe3c2 100644 --- a/Customizations/Questions/BikePumpOperationalStatus.ts +++ b/Customizations/Questions/bike/PumpOperationalStatus.ts @@ -1,8 +1,8 @@ -import {TagDependantUIElement} from "../UIElementConstructor"; -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; -export class BikePumpOperationalStatus extends TagRenderingOptions{ + +export default class PumpOperationalStatus extends TagRenderingOptions{ constructor() { super({ question: "Is the bicycle pump still operational?", @@ -12,4 +12,4 @@ export class BikePumpOperationalStatus extends TagRenderingOptions{ ] }); } -} \ No newline at end of file +} diff --git a/Customizations/Questions/BikePumpValves.ts b/Customizations/Questions/bike/PumpValves.ts similarity index 82% rename from Customizations/Questions/BikePumpValves.ts rename to Customizations/Questions/bike/PumpValves.ts index 662978a..50f6acb 100644 --- a/Customizations/Questions/BikePumpValves.ts +++ b/Customizations/Questions/bike/PumpValves.ts @@ -1,7 +1,8 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; -export class BikePumpValves extends TagRenderingOptions{ + +export class PumpValves extends TagRenderingOptions{ constructor() { super({ question: "What valves are supported?", @@ -21,4 +22,4 @@ export class BikePumpValves extends TagRenderingOptions{ } }); } -} \ No newline at end of file +} diff --git a/Customizations/Questions/BikeStationBrand.ts b/Customizations/Questions/bike/StationBrand.ts similarity index 73% rename from Customizations/Questions/BikeStationBrand.ts rename to Customizations/Questions/bike/StationBrand.ts index ba3c4d2..61dbc44 100644 --- a/Customizations/Questions/BikeStationBrand.ts +++ b/Customizations/Questions/bike/StationBrand.ts @@ -1,6 +1,10 @@ -import {TagRenderingOptions} from "../TagRendering"; -import {Tag} from "../../Logic/TagsFilter"; +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; + +/** + * Currently not used in Cyclofix because it's a little vague + */ export default class BikeStationBrand extends TagRenderingOptions { private static options = { priority: 15, @@ -17,6 +21,7 @@ export default class BikeStationBrand extends TagRenderingOptions { } constructor() { + throw Error('BikeStationBrand disabled') super(BikeStationBrand.options); } } diff --git a/Customizations/Questions/bike/StationChain.ts b/Customizations/Questions/bike/StationChain.ts new file mode 100644 index 0000000..eb5c36a --- /dev/null +++ b/Customizations/Questions/bike/StationChain.ts @@ -0,0 +1,16 @@ +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; + + +export default class StationChain extends TagRenderingOptions { + constructor() { + super({ + priority: 5, + question: "Does this bike station have a special tool to repair your bike chain?", + mappings: [ + {k: new Tag("service:bicycle:chain_tool", "yes"), txt: "There is a chain tool."}, + {k: new Tag("service:bicycle:chain_tool", "no"), txt: "There is no chain tool."}, + ] + }); + } +} diff --git a/Customizations/Questions/bike/StationOperator.ts b/Customizations/Questions/bike/StationOperator.ts new file mode 100644 index 0000000..001f920 --- /dev/null +++ b/Customizations/Questions/bike/StationOperator.ts @@ -0,0 +1,25 @@ +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; + + +export default class BikeStationOperator extends TagRenderingOptions { + constructor() { + super({ + priority: 15, + question: "Who operates this bike station (name of university, shop, city...)?", + freeform: { + key: "operator", + template: "This bike station is operated by $$$", + renderTemplate: "This bike station is operated by {operator}", + placeholder: "organisatie" + }, + mappings: [ + {k: new Tag("operator", "KU Leuven"), txt: "KU Leuven"}, + {k: new Tag("operator", "Stad Halle"), txt: "Stad Halle"}, + {k: new Tag("operator", "Saint Gilles - Sint Gillis"), txt: "Saint Gilles - Sint Gillis"}, + {k: new Tag("operator", "Jette"), txt: "Jette"}, + {k: new Tag("operator", "private"), txt: "Beheer door een privépersoon"} + ] + }); + } +} diff --git a/Customizations/Questions/bike/StationPumpTools.ts b/Customizations/Questions/bike/StationPumpTools.ts new file mode 100644 index 0000000..be81c8b --- /dev/null +++ b/Customizations/Questions/bike/StationPumpTools.ts @@ -0,0 +1,17 @@ +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag, And} from "../../../Logic/TagsFilter"; + + +export default class BikeStationPumpTools extends TagRenderingOptions { + constructor() { + super({ + priority: 15, + question: "Which services are available at this bike station?", + mappings: [ + {k: new And([new Tag("service:bicycle:tools", "no"), new Tag("service:bicycle:pump", "yes")]), txt: "There is only a pump available."}, + {k: new And([new Tag("service:bicycle:tools", "yes"), new Tag("service:bicycle:pump", "no")]), txt: "There are only tools (screwdrivers, pliers...) available."}, + {k: new And([new Tag("service:bicycle:tools", "yes"), new Tag("service:bicycle:pump", "yes")]), txt: "There are both tools and a pump available."} + ] + }); + } +} diff --git a/Customizations/Questions/bike/StationStand.ts b/Customizations/Questions/bike/StationStand.ts new file mode 100644 index 0000000..0b6fce1 --- /dev/null +++ b/Customizations/Questions/bike/StationStand.ts @@ -0,0 +1,16 @@ +import {TagRenderingOptions} from "../../TagRendering"; +import {Tag} from "../../../Logic/TagsFilter"; + + +export default class BikeStationStand extends TagRenderingOptions { + constructor() { + super({ + priority: 10, + question: "Does this bike station have a hook to suspend your bike with or a stand to elevate it?", + mappings: [ + {k: new Tag("service:bicycle:stand", "yes"), txt: "There is a hook or stand."}, + {k: new Tag("service:bicycle:stand", "no"), txt: "There is no hook or stand"}, + ] + }); + } +} diff --git a/assets/bike/cafe.svg b/assets/bike/cafe.svg new file mode 100644 index 0000000..daeabdc --- /dev/null +++ b/assets/bike/cafe.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/ghost.svg b/assets/bike/ghost.svg new file mode 100644 index 0000000..93a4b2a --- /dev/null +++ b/assets/bike/ghost.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/other_services.svg b/assets/bike/other_services.svg new file mode 100644 index 0000000..2cec6d1 --- /dev/null +++ b/assets/bike/other_services.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/bike/parking.svg b/assets/bike/parking.svg new file mode 100644 index 0000000..b095bc1 --- /dev/null +++ b/assets/bike/parking.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/place_with_pump.svg b/assets/bike/place_with_pump.svg new file mode 100644 index 0000000..28ed9a8 --- /dev/null +++ b/assets/bike/place_with_pump.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/pump.svg b/assets/bike/pump.svg new file mode 100644 index 0000000..79274d2 --- /dev/null +++ b/assets/bike/pump.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/pump_broken.svg b/assets/bike/pump_broken.svg new file mode 100644 index 0000000..2dcc14c --- /dev/null +++ b/assets/bike/pump_broken.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/repair_shop.svg b/assets/bike/repair_shop.svg new file mode 100644 index 0000000..8b80e99 --- /dev/null +++ b/assets/bike/repair_shop.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/repair_station.svg b/assets/bike/repair_station.svg new file mode 100644 index 0000000..1166e8d --- /dev/null +++ b/assets/bike/repair_station.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/repair_station_pump.svg b/assets/bike/repair_station_pump.svg new file mode 100644 index 0000000..b8e3895 --- /dev/null +++ b/assets/bike/repair_station_pump.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/shop.svg b/assets/bike/shop.svg new file mode 100644 index 0000000..6311d37 --- /dev/null +++ b/assets/bike/shop.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +