diff --git a/.gitpod.yml b/.gitpod.yml index d53368529..d7253fb46 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -10,5 +10,5 @@ ports: vscode: extensions: - "esbenp.prettier-vscode" - - "eamodio.gitlens", - - "GitHub.vscode-pull-request-github" \ No newline at end of file + - "eamodio.gitlens" + - "GitHub.vscode-pull-request-github" diff --git a/assets/layers/doctors/doctors.json b/assets/layers/doctors/doctors.json index 8979e43c0..eefedaf8d 100644 --- a/assets/layers/doctors/doctors.json +++ b/assets/layers/doctors/doctors.json @@ -1,147 +1,147 @@ { - "id": "doctors", - "name": { - "en": "doctors" + "id": "doctors", + "name": { + "en": "doctors" + }, + "description": { + "en": "This layer shows doctor offices, dentists and other healthcare facilities" + }, + "source": { + "osmTags": { + "or": [ + "amenity=doctors", + "amenity=dentist", + "healthcare=physiotherapist" + ] + } + }, + "title": { + "render": { + "en": "Doctors Office {name}" }, - "description": { - "en": "This layer shows doctor offices, dentists and other healthcare facilities" - }, - "source": { - "osmTags": { - "or": [ - "amenity=doctors", - "amenity=dentist", - "healthcare=physiotherapist" - ] - } - }, - "title": { - "render": { - "en": "Doctors Office {name}" - }, - "mappings": [ - { - "if": "amenity=doctors", - "then": "Doctors Office {name}" - }, - { - "if": "amenity=dentist", - "then": "Dentists office {name}" - }, - { - "if": "healthcare=physiotherapist", - "then": "Physiotherapists office {name}" - } - ] - }, - "minzoom": 13, - "tagRenderings": [ - "images", - "opening_hours", - "phone", - "email", - "website", - { - "question": { - "en": "What is the name of this doctors place?" - }, - "render": { - "en": "This doctors place is called {name}" - }, - "freeform": { - "key": "name" - }, - "id": "name" - }, - { - "condition": "amenity=doctors", - "id": "specialty", - "render": { - "en": "This doctor is specialized in {healthcare:speciality}" - }, - "question": { - "en": "What is this doctor specialized in?" - }, - "freeform": { - "key": "healthcare:speciality" - }, - "mappings": [ - { - "if": "healthcare:speciality=general", - "then": { - "en": "This is a general practitioner" - } - }, - { - "if": "healthcare:speciality=gynaecology", - "then": { - "en": "This is a gynaecologist" - } - }, - { - "if": "healthcare:speciality=psychiatry", - "then": { - "en": "This is a psychiatrist" - } - }, - { - "if": "healthcare:speciality=paediatrics", - "then": { - "en": "This is a paediatrician" - } - } - ] - } - ], - "presets": [ - { - "title": { - "en": "a doctors office" - }, - "tags": [ - "amenity=doctors" - ] - }, - { - "title": { - "en": "a dentists office" - }, - "tags": [ - "amenity=dentist" - ] - }, - { - "title": { - "en": "a physiotherapists office" - }, - "tags": [ - "healthcare=physiotherapist" - ] - } - ], - "filter": [ - { - "id": "opened-now", - "options": [ - { - "question": { - "en": "Opened now" - }, - "osmTags": "_isOpen=yes" - } - ] - } - ], - "mapRendering": [ - { - "icon": { - "render": "circle:white;./assets/layers/doctors/doctors.svg" - }, - "iconSize": "40,40,center", - "location": [ - "point", - "centroid" - ] - } + "mappings": [ + { + "if": "amenity=doctors", + "then": "Doctors Office {name}" + }, + { + "if": "amenity=dentist", + "then": "Dentists office {name}" + }, + { + "if": "healthcare=physiotherapist", + "then": "Physiotherapists office {name}" + } ] + }, + "minzoom": 13, + "tagRenderings": [ + "images", + "opening_hours", + "phone", + "email", + "website", + { + "question": { + "en": "What is the name of this doctors place?" + }, + "render": { + "en": "This doctors place is called {name}" + }, + "freeform": { + "key": "name" + }, + "id": "name" + }, + { + "condition": "amenity=doctors", + "id": "specialty", + "render": { + "en": "This doctor is specialized in {healthcare:speciality}" + }, + "question": { + "en": "What is this doctor specialized in?" + }, + "freeform": { + "key": "healthcare:speciality" + }, + "mappings": [ + { + "if": "healthcare:speciality=general", + "then": { + "en": "This is a general practitioner" + } + }, + { + "if": "healthcare:speciality=gynaecology", + "then": { + "en": "This is a gynaecologist" + } + }, + { + "if": "healthcare:speciality=psychiatry", + "then": { + "en": "This is a psychiatrist" + } + }, + { + "if": "healthcare:speciality=paediatrics", + "then": { + "en": "This is a paediatrician" + } + } + ] + } + ], + "presets": [ + { + "title": { + "en": "a doctors office" + }, + "tags": [ + "amenity=doctors" + ] + }, + { + "title": { + "en": "a dentists office" + }, + "tags": [ + "amenity=dentist" + ] + }, + { + "title": { + "en": "a physiotherapists office" + }, + "tags": [ + "healthcare=physiotherapist" + ] + } + ], + "filter": [ + { + "id": "opened-now", + "options": [ + { + "question": { + "en": "Opened now" + }, + "osmTags": "_isOpen=yes" + } + ] + } + ], + "mapRendering": [ + { + "icon": { + "render": "circle:white;./assets/layers/doctors/doctors.svg" + }, + "iconSize": "40,40,center", + "location": [ + "point", + "centroid" + ] + } + ] } \ No newline at end of file diff --git a/assets/layers/kerbs/kerbs.json b/assets/layers/kerbs/kerbs.json index af185c4d4..ad441c8ec 100644 --- a/assets/layers/kerbs/kerbs.json +++ b/assets/layers/kerbs/kerbs.json @@ -164,9 +164,9 @@ "de": "Wie hoch ist der Bordstein?" }, "render": { - "en": "Kerb height: {{kerb:height}}", - "nl": "Stoeprandhoogte: {{kerb:height}}", - "de": "Bordsteinhöhe: {{kerb:height}}" + "en": "Kerb height: {kerb:height}", + "nl": "Stoeprandhoogte: {kerb:height}", + "de": "Bordsteinhöhe: {kerb:height}" }, "freeform": { "key": "kerb:height", diff --git a/assets/layers/parking/parking.json b/assets/layers/parking/parking.json index 3363bbc3c..27159a450 100644 --- a/assets/layers/parking/parking.json +++ b/assets/layers/parking/parking.json @@ -26,7 +26,142 @@ "es": "Una capa que muestra aparcamientos para coches" }, "tagRenderings": [ - "images" + "images", + { + "id": "parking-type", + "mappings": [ + { + "if": "parking=surface", + "then": { + "en": "This is a surface parking lot", + "nl": "Dit is een bovengronds parkeerterrein" + } + }, + { + "if": "parking=street_side", + "then": { + "en": "This is a parking bay next to a street", + "nl": "Dit is een parkeerplek langs een weg" + } + }, + { + "if": "parking=underground", + "then": { + "en": "This is an underground parking garage", + "nl": "Dit is een ondergrondse parkeergarage" + } + }, + { + "if": "parking=multi-storey", + "then": { + "en": "This is a multi-storey parking garage", + "nl": "Dit is een bovengrondse parkeergarage met meerdere verdiepingen" + } + }, + { + "if": "parking=rooftop", + "then": { + "en": "This is a rooftop parking deck", + "nl": "Dit is een parkeerdek op een dak" + } + }, + { + "if": "parking=lane", + "then": { + "en": "This is a lane for parking on the road", + "nl": "Dit is een strook voor parkeren op de weg" + } + }, + { + "if": "parking=carports", + "then": { + "en": "This is parking covered by carports", + "nl": "Dit is parking overdekt met carports" + } + }, + { + "if": "parking=garage_boxes", + "then": { + "en": "This a parking consisting of garage boxes", + "nl": "Dit is een parking bestaande uit garageboxen" + } + }, + { + "if": "parking=layby", + "then": { + "en": "This is a parking on a layby", + "nl": "Dit is een parkeerplek op een layby" + } + }, + { + "if": "parking=sheds", + "then": { + "en": "This is a parking consisting of sheds", + "nl": "Dit is een parking bestaande uit schuren" + } + } + ], + "question": { + "en": "What kind of parking is this?", + "nl": "Wat voor parking is dit?" + } + }, + { + "id": "capacity-disabled", + "freeform": { + "key": "capacity:disabled", + "type": "pnat", + "placeholder": { + "en": "Amount of parking spots reserved for disabled people", + "nl": "Aantal parkeerplaatsen voor gehandicapten" + } + }, + "mappings": [ + { + "if": "capacity:disabled=yes", + "then": { + "en": "There are disabled parking spots, but it is not known how many", + "nl": "Er zijn parkeerplaatsen voor gehandicapten, maar het is niet bekend hoeveel er zijn" + }, + "hideInAnswer": true + }, + { + "if": "capacity:disabled=no", + "then": { + "en": "There are no disabled parking spots", + "nl": "Er zijn geen parkeerplaatsen voor gehandicapten" + }, + "hideInAnswer": true + } + ], + "question": { + "en": "How many disabled parking spots are there at this parking?", + "nl": "Hoeveel parkeerplaatsen voor gehandicapten zijn er op deze parking?" + }, + "render": { + "en": "There are {capacity:disabled} disabled parking spots", + "nl": "Er zijn capacity:disabled} parkeerplaatsen voor gehandicapten" + } + }, + { + "id": "capacity", + "freeform": { + "key": "capacity", + "type": "pnat", + "placeholder": { + "en": "Amount of parking spots", + "nl": "Aantal parkeerplaatsen" + } + }, + "question": { + "en": "How many parking spots are there at this parking?", + "nl": "Hoeveel parkeerplaatsen zijn er op deze parking?" + }, + "render": { + "en": "There are {capacity} parking spots", + "nl": "Er zijn {capacity} parkeerplaatsen" + } + } ], "presets": [ { @@ -52,7 +187,7 @@ }, "allowMove": { "enableRelocation": false, - "enableImproveAccuraccy": true + "enableImproveAccuracy": true }, "mapRendering": [ { diff --git a/assets/layers/rainbow_crossings/rainbow_crossings.json b/assets/layers/rainbow_crossings/rainbow_crossings.json index 35c99d8d9..d13fe3c03 100644 --- a/assets/layers/rainbow_crossings/rainbow_crossings.json +++ b/assets/layers/rainbow_crossings/rainbow_crossings.json @@ -7,8 +7,7 @@ "en": "A layer showing pedestrian crossings with rainbow paintings" }, "source": { - "osmTags": - "highway=crossing" + "osmTags": "highway=crossing" }, "minzoom": 17, "title": { @@ -38,7 +37,7 @@ ], "tagRenderings": [ "images", - { + { "id": "crossing-with-rainbow", "question": { "en": "Does this crossing has rainbow paintings?" @@ -77,10 +76,12 @@ { "icon": { "render": "./assets/themes/rainbow_crossings/crossing.svg", - "mappings": [{ - "if": "crossing:marking=rainbow", - "then": "./assets/themes/rainbow_crossings/logo.svg" - }] + "mappings": [ + { + "if": "crossing:marking=rainbow", + "then": "./assets/themes/rainbow_crossings/logo.svg" + } + ] }, "iconSize": "40,40,center", "location": [ @@ -89,4 +90,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index 90048681e..21218f235 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -1,13 +1,19 @@ { "id": "mapcomplete-changes", "title": { - "en": "Changes made with MapComplete" + "en": "Changes made with MapComplete", + "nl": "Wijzigingen gemaakt met MapComplete", + "de": "Mit MapComplete vorgenommene Änderungen" }, "shortDescription": { - "en": "Shows changes made by MapComplete" + "en": "Shows changes made by MapComplete", + "nl": "Toont wijzigingen gemaakt met MapComplete", + "de": "Zeigt die mit MapComplete vorgenommenen Änderungen" }, "description": { - "en": "This maps shows all the changes made with MapComplete" + "en": "This maps shows all the changes made with MapComplete", + "nl": "Deze kaart toont alle wijzigingen die met MapComplete werden gemaakt", + "de": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen" }, "maintainer": "", "icon": "./assets/svg/logo.svg", @@ -22,7 +28,8 @@ { "id": "mapcomplete-changes", "name": { - "en": "Changeset centers" + "en": "Changeset centers", + "de": "Zentrum der Änderungssätze" }, "minzoom": 0, "source": { @@ -36,35 +43,47 @@ ], "title": { "render": { - "en": "Changeset for {theme}" + "en": "Changeset for {theme}", + "nl": "Wijzigingset voor {theme}", + "de": "Änderungssatz für {theme}" } }, "description": { - "en": "Shows all MapComplete changes" + "en": "Shows all MapComplete changes", + "nl": "Toont alle wijzigingen met MapComplete", + "de": "Zeigt alle MapComplete Änderungen" }, "tagRenderings": [ { "id": "render_id", "render": { - "en": "Changeset {id}" + "en": "Changeset {id}", + "nl": "Wijzigingset {id}", + "de": "Änderungssatz {id}" } }, { "id": "contributor", "render": { - "en": "Change made by {_last_edit:contributor}" + "en": "Change made by {_last_edit:contributor}", + "nl": "Wijziging gemaakt door {_last_edit:contributor}", + "de": "Geändert von {_last_edit:contributor}" } }, { "id": "theme", "render": { - "en": "Change with theme {theme}" + "en": "Change with theme {theme}", + "nl": "Wijziging met thema {theme}", + "de": "Änderung mit Thema {theme}" }, "mappings": [ { "if": "theme~http.*", "then": { - "en": "Change with unofficial theme {theme}" + "en": "Change with unofficial theme {theme}", + "nl": "Wijziging met officieus thema {theme}", + "de": "Änderung mit inoffiziellem Thema {theme}" } } ] @@ -364,7 +383,9 @@ } ], "question": { - "en": "Themename contains {search}" + "en": "Themename contains {search}", + "nl": "Themanaam bevat {search}", + "de": "Themenname enthält {search}" } } ] @@ -380,7 +401,9 @@ } ], "question": { - "en": "Made by contributor {search}" + "en": "Made by contributor {search}", + "nl": "Gemaakt door bijdrager {search}", + "de": "Erstellt von {search}" } } ] @@ -396,7 +419,9 @@ } ], "question": { - "en": "Not made by contributor {search}" + "en": "Not made by contributor {search}", + "nl": "Niet gemaakt door bijdrager {search}", + "de": "Nicht erstellt von {search}" } } ] @@ -411,7 +436,9 @@ { "id": "link_to_more", "render": { - "en": "More statistics can be found here" + "en": "More statistics can be found here", + "nl": "Meer statistieken kunnen hier gevonden worden", + "de": "Weitere Statistiken finden Sie hier" } }, { diff --git a/assets/themes/onwheels/onwheels.json b/assets/themes/onwheels/onwheels.json index 2d78b4b4e..f0f32bfbf 100644 --- a/assets/themes/onwheels/onwheels.json +++ b/assets/themes/onwheels/onwheels.json @@ -1,7 +1,7 @@ { "id": "onwheels", "title": { - "en": "OnWheels" + "en": "OnWheels" }, "description": { "en": "On this map, publicly wheelchair accessible places are shown and can be easily added" @@ -30,11 +30,11 @@ "doctors", "walls_and_buildings" ], - "overrideAll" : { - "minzoom" : "15", - "mapRendering" : [ + "overrideAll": { + "minzoom": "15", + "mapRendering": [ { - "label" : null + "label": null } ] } diff --git a/assets/themes/rainbow_crossings/crossing.svg b/assets/themes/rainbow_crossings/crossing.svg index 37304af0f..468f421dd 100644 --- a/assets/themes/rainbow_crossings/crossing.svg +++ b/assets/themes/rainbow_crossings/crossing.svg @@ -1,6 +1,8 @@ - + diff --git a/assets/themes/rainbow_crossings/rainbow_crossings.json b/assets/themes/rainbow_crossings/rainbow_crossings.json index d05e6c5f6..1a63df6fc 100644 --- a/assets/themes/rainbow_crossings/rainbow_crossings.json +++ b/assets/themes/rainbow_crossings/rainbow_crossings.json @@ -15,7 +15,6 @@ "startZoom": 16, "widenFactor": 2, "layers": [ - "rainbow_crossings", { "builtin": "rainbow_crossings", "override": { @@ -25,11 +24,14 @@ "=presets": [], "source": { "osmTags": { - "and+": ["crossing:marking=rainbow"] + "and+": [ + "crossing:marking=rainbow" + ] } } } }, + "rainbow_crossings", { "builtin": "cycleways_and_roads", "override": { @@ -38,6 +40,4 @@ } } ] -} - - +} \ No newline at end of file diff --git a/langs/layers/de.json b/langs/layers/de.json index 2d686ca62..bfe2f47f8 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -4122,7 +4122,7 @@ "placeholder": "Höhe des Bordsteins" }, "question": "Wie hoch ist der Bordstein?", - "render": "Bordsteinhöhe: {{kerb:height}}" + "render": "Bordsteinhöhe: {kerb:height}" }, "kerb-type": { "mappings": { diff --git a/langs/layers/en.json b/langs/layers/en.json index 6ddb00990..3e51d47e2 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -3256,6 +3256,7 @@ "name": "Direction visualization" }, "doctors": { + "description": "This layer shows doctor offices, dentists and other healthcare facilities", "filter": { "0": { "options": { @@ -3278,6 +3279,10 @@ } }, "tagRenderings": { + "name": { + "question": "What is the name of this doctors place?", + "render": "This doctors place is called {name}" + }, "specialty": { "mappings": { "0": { @@ -4188,7 +4193,7 @@ "placeholder": "Height of the kerb" }, "question": "What is the height of this kerb?", - "render": "Kerb height: {{kerb:height}}" + "render": "Kerb height: {kerb:height}" }, "kerb-type": { "mappings": { @@ -4685,6 +4690,65 @@ "title": "a car parking" } }, + "tagRenderings": { + "capacity": { + "freeform": { + "placeholder": "Amount of parking spots" + }, + "question": "How many parking spots are there at this parking?", + "render": "There are {capacity} parking spots" + }, + "capacity-disabled": { + "freeform": { + "placeholder": "Amount of parking spots reserved for disabled people" + }, + "mappings": { + "0": { + "then": "There are disabled parking spots, but it is not known how many" + }, + "1": { + "then": "There are no disabled parking spots" + } + }, + "question": "How many disabled parking spots are there at this parking?", + "render": "There are {capacity:disabled} disabled parking spots" + }, + "parking-type": { + "mappings": { + "0": { + "then": "This is a surface parking lot" + }, + "1": { + "then": "This is a parking bay next to a street" + }, + "2": { + "then": "This is an underground parking garage" + }, + "3": { + "then": "This is a multi-storey parking garage" + }, + "4": { + "then": "This is a rooftop parking deck" + }, + "5": { + "then": "This is a lane for parking on the road" + }, + "6": { + "then": "This is parking covered by carports" + }, + "7": { + "then": "This a parking consisting of garage boxes" + }, + "8": { + "then": "This is a parking on a layby" + }, + "9": { + "then": "This is a parking consisting of sheds" + } + }, + "question": "What kind of parking is this?" + } + }, "title": { "render": "Car parking" } @@ -4990,6 +5054,35 @@ "render": "Bookcase" } }, + "rainbow_crossings": { + "description": "A layer showing pedestrian crossings with rainbow paintings", + "name": "Crossings with rainbow paintings", + "presets": { + "0": { + "description": "Pedestrian crossing", + "title": "a crossing" + } + }, + "tagRenderings": { + "crossing-with-rainbow": { + "mappings": { + "0": { + "then": "This crossing has rainbow paintings" + }, + "1": { + "then": "No rainbow paintings here" + }, + "2": { + "then": "No rainbow paintings here" + } + }, + "question": "Does this crossing has rainbow paintings?" + } + }, + "title": { + "render": "Crossing" + } + }, "recycling": { "description": "A layer with recycling containers and centres", "filter": { diff --git a/langs/layers/nl.json b/langs/layers/nl.json index db44efd9a..cfba0ceeb 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -4053,7 +4053,7 @@ "placeholder": "Hoogte van de stoeprand" }, "question": "Hoe hoog is deze stoeprand?", - "render": "Stoeprandhoogte: {{kerb:height}}" + "render": "Stoeprandhoogte: {kerb:height}" }, "kerb-type": { "mappings": { @@ -4535,6 +4535,65 @@ "title": "een parking voor auto's" } }, + "tagRenderings": { + "capacity": { + "freeform": { + "placeholder": "Aantal parkeerplaatsen" + }, + "question": "Hoeveel parkeerplaatsen zijn er op deze parking?", + "render": "Er zijn {capacity} parkeerplaatsen" + }, + "capacity-disabled": { + "freeform": { + "placeholder": "Aantal parkeerplaatsen voor gehandicapten" + }, + "mappings": { + "0": { + "then": "Er zijn parkeerplaatsen voor gehandicapten, maar het is niet bekend hoeveel er zijn" + }, + "1": { + "then": "Er zijn geen parkeerplaatsen voor gehandicapten" + } + }, + "question": "Hoeveel parkeerplaatsen voor gehandicapten zijn er op deze parking?", + "render": "Er zijn {capacity:disabled} parkeerplaatsen voor gehandicapten" + }, + "parking-type": { + "mappings": { + "0": { + "then": "Dit is een bovengronds parkeerterrein" + }, + "1": { + "then": "Dit is een parkeerplek langs een weg" + }, + "2": { + "then": "Dit is een ondergrondse parkeergarage" + }, + "3": { + "then": "Dit is een bovengrondse parkeergarage met meerdere verdiepingen" + }, + "4": { + "then": "Dit is een parkeerdek op een dak" + }, + "5": { + "then": "Dit is een strook voor parkeren op de weg" + }, + "6": { + "then": "Dit is parking overdekt met carports" + }, + "7": { + "then": "Dit is een parking bestaande uit garageboxen" + }, + "8": { + "then": "Dit is een parkeerplek op een layby" + }, + "9": { + "then": "Dit is een parking bestaande uit schuren" + } + }, + "question": "Wat voor parking is dit?" + } + }, "title": { "render": "Parking voor auto's" } @@ -6434,4 +6493,4 @@ } } } -} \ No newline at end of file +} diff --git a/langs/themes/en.json b/langs/themes/en.json index b3e3d3a17..5dd1e80ae 100644 --- a/langs/themes/en.json +++ b/langs/themes/en.json @@ -741,6 +741,10 @@ "shortDescription": "Publicly accessible towers to enjoy the view", "title": "Observation towers" }, + "onwheels": { + "description": "On this map, publicly weelchair accessible places are shown and can be easily added", + "title": "OnWheels" + }, "openwindpowermap": { "description": "A map for showing and editing wind turbines.", "title": "OpenWindPowerMap" @@ -863,6 +867,10 @@ "shortDescription": "A map showing postboxes and post offices", "title": "Postbox and Post Office Map" }, + "rainbow_crossings": { + "description": "On this map, rainbow-painted pedestrian crossings are shown and can be easily added", + "title": "Rainbow pedestrian crossings" + }, "shops": { "description": "On this map, one can mark basic information about shops, add opening hours and phone numbers", "shortDescription": "An editable map with basic shop information", diff --git a/manifest.webmanifest b/manifest.webmanifest index 1e577af78..5679708fc 100644 --- a/manifest.webmanifest +++ b/manifest.webmanifest @@ -1,5 +1,5 @@ { - "name": "index", + "name": "MapComplete", "short_name": "MapComplete", "start_url": "index.html", "lang": "en", diff --git a/package.json b/package.json index 1d97a1908..78485fa28 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "generate:schemas": "ts2json-schema -p Models/ThemeConfig/Json/ -o Docs/Schemas/ -t tsconfig.json -R . -m \".*ConfigJson\" && ts-node scripts/fixSchemas.ts ", "generate:service-worker": "tsc service-worker.ts && git_hash=$(git rev-parse HEAD) && sed -i \"s/GITHUB-COMMIT/$git_hash/\" service-worker.js", "optimize-images": "cd assets/generated/ && find -name '*.png' -exec optipng '{}' \\; && echo 'PNGs are optimized'", - "reset:layeroverview": "echo {\\\"layers\\\":[], \\\"themes\\\":[]} > ./assets/generated/known_layers_and_themes.json && echo {\\\"layers\\\": []} > ./assets/generated/known_layers.json && rm ./asssets/generated/layers/* && rm ./assets/generated/themes/*", + "reset:layeroverview": "echo {\\\"layers\\\":[], \\\"themes\\\":[]} > ./assets/generated/known_layers_and_themes.json && echo {\\\"layers\\\": []} > ./assets/generated/known_layers.json && rm -f ./asssets/generated/layers/*.json && rm -f ./assets/generated/themes/*.json && npm run generate:layeroverview && ts-node scripts/generateLayerOverview.ts --force", "generate": "mkdir -p ./assets/generated; npm run reset:layeroverview; npm run generate:images; npm run generate:charging-stations; npm run generate:translations; npm run generate:licenses; npm run generate:layeroverview; npm run generate:service-worker", "generate:charging-stations": "cd ./assets/layers/charging_station && ts-node csvToJson.ts && cd -", "prepare-deploy": "npm run generate:service-worker && ./scripts/build.sh", diff --git a/scripts/generateLayouts.ts b/scripts/generateLayouts.ts index 546d26350..1272117c5 100644 --- a/scripts/generateLayouts.ts +++ b/scripts/generateLayouts.ts @@ -165,7 +165,7 @@ async function createManifest(layout: LayoutConfig, alreadyWritten: string[]): P const ogDescr = Translations.T(layout.description ?? "").txt; const manifest = { - name: name, + name: ogTitle, short_name: ogTitle, start_url: `${layout.id.toLowerCase()}.html`, lang: "en", @@ -257,7 +257,7 @@ async function createLandingPage(layout: LayoutConfig, manifest, whiteIcons, alr .replace(/.*/s, themeSpecific) .replace(/.*/s, layout.shortDescription.textFor(targetLanguage)) .replace("", ``); - +0 try { output = output .replace(/.*/s, ``) @@ -320,10 +320,9 @@ async function main(): Promise { writeFile(manifestLocation, manif, err); // Create a landing page for the given theme - createLandingPage(layout, manifest, whiteIcons, alreadyWritten).then(landing => { - writeFile(enc(layout.id) + ".html", landing, err) - }); - createIndexFor(layout) + const landing = await createLandingPage(layout, manifest, whiteIcons, alreadyWritten) + writeFile(enc(layout.id) + ".html", landing, err) + await createIndexFor(layout) } diff --git a/service-worker.ts b/service-worker.ts index 56e006a4e..d50009104 100644 --- a/service-worker.ts +++ b/service-worker.ts @@ -71,7 +71,7 @@ self.addEventListener('fetch', event.respondWith(new Response(JSON.stringify({"service-worker-version": version}))); return } - const shouldBeCached = origin.host === requestUrl.host && origin.host !== "127.0.0.1:1234" && origin.host !== "localhost" && !origin.host.endsWith(".gitpod.io") + const shouldBeCached = origin.host === requestUrl.host && origin.hostname !== "127.0.0.1" && origin.hostname !== "localhost" && !origin.host.endsWith(".gitpod.io") if (!shouldBeCached) { console.log("Not intercepting ", requestUrl.toString(), origin.host, requestUrl.host) // We return _without_ calling event.respondWith, which signals the browser that it'll have to handle it himself