forked from MapComplete/MapComplete
Merge master
This commit is contained in:
commit
9cd602cf29
13 changed files with 88 additions and 17 deletions
23
CHANGELOG.md
23
CHANGELOG.md
|
@ -2,6 +2,29 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
|
### [0.51.8](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.51.7...v0.51.8) (2025-05-24)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* add comment on duplicate nearby images, make sure they are always deduplicated ([a3aba99](https://source.mapcomplete.org/MapComplete/MapComplete/commits/a3aba991c51b6aacdcf3058644bd00189f3bed25))
|
||||||
|
* fix loading notes based on hash ([cde7bf6](https://source.mapcomplete.org/MapComplete/MapComplete/commits/cde7bf6d9aa7c521b9b4a22fd52509d8e725cae5))
|
||||||
|
* inspector: fix AggregateImages.svelte ([e2e3e4b](https://source.mapcomplete.org/MapComplete/MapComplete/commits/e2e3e4b51d17c863d5c75e2c9bc62e3479e8e888))
|
||||||
|
* probably partial fix of [#2407](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2407) ([68d9606](https://source.mapcomplete.org/MapComplete/MapComplete/commits/68d96063acb0e5c1299b12dc38ada4440b493958))
|
||||||
|
|
||||||
|
|
||||||
|
### Theme improvements
|
||||||
|
|
||||||
|
* **aircraft:** add historical aircraft layer and theme, https://en.osm.town/@pietervdvn/114491536018069317 ([0e91656](https://source.mapcomplete.org/MapComplete/MapComplete/commits/0e91656dd68a8c1a687200e623ddb6b94811f350))
|
||||||
|
* **elevator:** Move speech output question higher, add condition on induction loop question, see [#2411](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2411) ([41e501c](https://source.mapcomplete.org/MapComplete/MapComplete/commits/41e501c18e6888a4b99678baf294cea325a71e7c))
|
||||||
|
* **food:** add 'spanish' as option ([cdd5003](https://source.mapcomplete.org/MapComplete/MapComplete/commits/cdd5003aed8a81024b19322af941ccf7ec9fb7dd))
|
||||||
|
* **historic_aircraft:** make build work ([f673b54](https://source.mapcomplete.org/MapComplete/MapComplete/commits/f673b540e53c144ca19d69cf8d7794c89dc3b14d))
|
||||||
|
* **historic_rolling_stock:** create rolling stock theme ([a591a44](https://source.mapcomplete.org/MapComplete/MapComplete/commits/a591a44c1a334417f91e00af68d004c57e5e92d0))
|
||||||
|
* **rolling_stock:** more questions ([3d90e14](https://source.mapcomplete.org/MapComplete/MapComplete/commits/3d90e143d6e9b5c334c58cab1598274ce386b7ce))
|
||||||
|
* **shops:** add hairdresser specific questions ([cd8b614](https://source.mapcomplete.org/MapComplete/MapComplete/commits/cd8b614bd975bb8f0738da469bcb0cce58a9cb7a))
|
||||||
|
* **toilets:** add an allowed range to some freeform inputs, allow to specify 'units' in the freeform, add the possibility to convert units ([1e0ac3f](https://source.mapcomplete.org/MapComplete/MapComplete/commits/1e0ac3febf06272a5978a87cceeb281929356936))
|
||||||
|
* **windpumps:** add windpump layer ([f03877b](https://source.mapcomplete.org/MapComplete/MapComplete/commits/f03877b570e569c8ef9ca716edb39e5f9e6852b2))
|
||||||
|
|
||||||
### [0.51.7](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.51.6...v0.51.7) (2025-05-12)
|
### [0.51.7](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.51.6...v0.51.7) (2025-05-12)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -728,6 +728,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"if": "colour=gray",
|
"if": "colour=gray",
|
||||||
|
"alsoShowIf": "colour=grey",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Colour: gray",
|
"en": "Colour: gray",
|
||||||
"de": "Farbe: grau",
|
"de": "Farbe: grau",
|
||||||
|
|
|
@ -285,7 +285,7 @@
|
||||||
],
|
],
|
||||||
"tagRenderings": [
|
"tagRenderings": [
|
||||||
"images",
|
"images",
|
||||||
"level",
|
"reviews",
|
||||||
{
|
{
|
||||||
"question": {
|
"question": {
|
||||||
"nl": "Wat is de naam van deze zaak?",
|
"nl": "Wat is de naam van deze zaak?",
|
||||||
|
@ -432,13 +432,40 @@
|
||||||
"email",
|
"email",
|
||||||
"phone",
|
"phone",
|
||||||
"payment-options",
|
"payment-options",
|
||||||
"wheelchair-access",
|
"level",
|
||||||
"smoking",
|
"smoking",
|
||||||
|
"wheelchair-access",
|
||||||
|
{
|
||||||
|
"question": {
|
||||||
|
"en": "Does {title()} accept bring-your-own reusable cups?"
|
||||||
|
},
|
||||||
|
"id": "pub_reusable_packaging",
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "reusable_packaging:accept=yes",
|
||||||
|
"then": {
|
||||||
|
"en": "Accepts reusable cups"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "reusable_packaging:accept=no",
|
||||||
|
"alsoShowIf": "reusable_packaging:accept=",
|
||||||
|
"then": {
|
||||||
|
"en": "Does not accept reusable cups"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "reusable_packaging:accept=only",
|
||||||
|
"then": {
|
||||||
|
"en": "<b>Only</b> serves to people who bring reusable cups"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"service:electricity",
|
"service:electricity",
|
||||||
"seating",
|
"seating",
|
||||||
"dog-access",
|
"dog-access",
|
||||||
"internet-all",
|
"internet-all",
|
||||||
"reviews",
|
|
||||||
"toilet_at_amenity_lib.all"
|
"toilet_at_amenity_lib.all"
|
||||||
],
|
],
|
||||||
"filter": [
|
"filter": [
|
||||||
|
|
|
@ -150,6 +150,10 @@
|
||||||
],
|
],
|
||||||
"tagRenderings": [
|
"tagRenderings": [
|
||||||
"images",
|
"images",
|
||||||
|
{
|
||||||
|
"id": "preset_type",
|
||||||
|
"render": "{preset_type_select()}"
|
||||||
|
},
|
||||||
"wikipedia",
|
"wikipedia",
|
||||||
{
|
{
|
||||||
"id": "model",
|
"id": "model",
|
||||||
|
|
|
@ -76,8 +76,12 @@
|
||||||
{
|
{
|
||||||
"and": [
|
"and": [
|
||||||
"shop~*",
|
"shop~*",
|
||||||
"second_hand=yes",
|
{
|
||||||
"second_hand=only"
|
"or": [
|
||||||
|
"second_hand=yes",
|
||||||
|
"second_hand=only"
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
4
package-lock.json
generated
4
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "mapcomplete",
|
"name": "mapcomplete",
|
||||||
"version": "0.51.7",
|
"version": "0.51.8",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "mapcomplete",
|
"name": "mapcomplete",
|
||||||
"version": "0.51.7",
|
"version": "0.51.8",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "mapcomplete",
|
"name": "mapcomplete",
|
||||||
"version": "0.51.7",
|
"version": "0.51.8",
|
||||||
"repository": "https://source.mapcomplete.org/MapComplete/MapComplete",
|
"repository": "https://source.mapcomplete.org/MapComplete/MapComplete",
|
||||||
"description": "A small website to edit OSM easily",
|
"description": "A small website to edit OSM easily",
|
||||||
"bugs": "hhttps://source.mapcomplete.org/MapComplete/MapComplete/issues",
|
"bugs": "hhttps://source.mapcomplete.org/MapComplete/MapComplete/issues",
|
||||||
|
|
|
@ -34,7 +34,8 @@ export default class AllImageProviders {
|
||||||
AllImageProviders.genericImageProvider,
|
AllImageProviders.genericImageProvider,
|
||||||
]
|
]
|
||||||
public static apiUrls: string[] = [].concat(
|
public static apiUrls: string[] = [].concat(
|
||||||
...AllImageProviders.imageAttributionSources.map((src) => src.apiUrls())
|
...AllImageProviders.imageAttributionSources.map((src) => src.apiUrls()),
|
||||||
|
"https://panoramax-storage-public-fast.s3.gra.perf.cloud.ovh.net"
|
||||||
)
|
)
|
||||||
public static defaultKeys: string[] = [].concat(
|
public static defaultKeys: string[] = [].concat(
|
||||||
...AllImageProviders.imageAttributionSources.map((provider) => provider.defaultKeyPrefixes)
|
...AllImageProviders.imageAttributionSources.map((provider) => provider.defaultKeyPrefixes)
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
import { OsmObject } from "../../Logic/Osm/OsmObject"
|
import { OsmObject } from "../../Logic/Osm/OsmObject"
|
||||||
import Loading from "../Base/Loading.svelte"
|
import Loading from "../Base/Loading.svelte"
|
||||||
import { HistoryUtils } from "./HistoryUtils"
|
import { HistoryUtils } from "./HistoryUtils"
|
||||||
import * as shared_questions from "../../../public/assets/generated/layers/questions.json"
|
import * as favourite from "../../../public/assets/generated/layers/favourite.json"
|
||||||
import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig"
|
import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig"
|
||||||
import Tr from "../Base/Tr.svelte"
|
import Tr from "../Base/Tr.svelte"
|
||||||
import AccordionSingle from "../Flowbite/AccordionSingle.svelte"
|
import AccordionSingle from "../Flowbite/AccordionSingle.svelte"
|
||||||
|
@ -13,6 +13,8 @@
|
||||||
import TagRenderingChart from "../BigComponents/TagRenderingChart"
|
import TagRenderingChart from "../BigComponents/TagRenderingChart"
|
||||||
import ToSvelte from "../Base/ToSvelte.svelte"
|
import ToSvelte from "../Base/ToSvelte.svelte"
|
||||||
import type { TagRenderingConfigJson } from "../../Models/ThemeConfig/Json/TagRenderingConfigJson"
|
import type { TagRenderingConfigJson } from "../../Models/ThemeConfig/Json/TagRenderingConfigJson"
|
||||||
|
import { Or } from "../../Logic/Tags/Or"
|
||||||
|
import { Utils } from "../../Utils"
|
||||||
|
|
||||||
export let onlyShowUsername: string[]
|
export let onlyShowUsername: string[]
|
||||||
export let features: Feature[]
|
export let features: Feature[]
|
||||||
|
@ -32,12 +34,21 @@
|
||||||
}[]
|
}[]
|
||||||
> = allHistories.mapD((histories) => HistoryUtils.fullHistoryDiff(histories, usernames))
|
> = allHistories.mapD((histories) => HistoryUtils.fullHistoryDiff(histories, usernames))
|
||||||
|
|
||||||
const trs = shared_questions.tagRenderings.map(
|
// We use the favourite-layer as it contains _all_ questions
|
||||||
|
const trs = favourite.tagRenderings.map(
|
||||||
(tr) => new TagRenderingConfig(<TagRenderingConfigJson>tr)
|
(tr) => new TagRenderingConfig(<TagRenderingConfigJson>tr)
|
||||||
)
|
)
|
||||||
|
|
||||||
function detectQuestion(key: string): TagRenderingConfig {
|
function detectQuestion(key: string): TagRenderingConfig {
|
||||||
return trs.find((tr) => tr.freeform?.key === key)
|
const byKey = trs.find((tr) => tr.freeform?.key === key)
|
||||||
|
if (byKey) {
|
||||||
|
return byKey
|
||||||
|
}
|
||||||
|
return trs.find(tr => tr.mappings.some(mapping => {
|
||||||
|
const ifTags = Or.construct(Utils.NoNull([mapping.if, mapping.alsoShowIf]))
|
||||||
|
const keys = ifTags.usedKeys()
|
||||||
|
return keys.some(k => k == key)
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
const mergedCount: Store<
|
const mergedCount: Store<
|
||||||
|
@ -134,7 +145,7 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{:else}
|
{:else}
|
||||||
Could not create a graph
|
Could not create a graph - this item type has no associated question
|
||||||
{/if}
|
{/if}
|
||||||
</AccordionSingle>
|
</AccordionSingle>
|
||||||
{/each}
|
{/each}
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
| Store<Feature<Geometry, HotspotProperties>[]> = []
|
| Store<Feature<Geometry, HotspotProperties>[]> = []
|
||||||
|
|
||||||
let isLoaded = new UIEventSource(false)
|
let isLoaded = new UIEventSource(false)
|
||||||
console.log(">>> slots are", $$slots)
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class={twMerge("relative h-full w-full", clss)}>
|
<div class={twMerge("relative h-full w-full", clss)}>
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
informationLocation: (image.detailsUrl ?? image.pictureUrl ?? image.thumbUrl),
|
informationLocation: (image.detailsUrl ?? image.pictureUrl ?? image.thumbUrl),
|
||||||
date
|
date
|
||||||
}
|
}
|
||||||
console.log(">>> trying to create license info based on", image, license)
|
|
||||||
let providedImage: ProvidedImage = {
|
let providedImage: ProvidedImage = {
|
||||||
url: image.thumbUrl ?? image.pictureUrl,
|
url: image.thumbUrl ?? image.pictureUrl,
|
||||||
url_hd: image.pictureUrl,
|
url_hd: image.pictureUrl,
|
||||||
|
|
|
@ -180,7 +180,7 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex h-screen w-full flex-col">
|
<div class="flex h-screen w-full flex-col">
|
||||||
<div class="low-interaction flex items-center gap-x-2 p-2">
|
<div class="low-interaction flex items-center gap-x-2 p-2 flex-wrap">
|
||||||
<MagnifyingGlassCircle class="h-12 w-12" />
|
<MagnifyingGlassCircle class="h-12 w-12" />
|
||||||
<h1 class="m-0 mx-2 flex-shrink-0">
|
<h1 class="m-0 mx-2 flex-shrink-0">
|
||||||
<Tr t={t.title} />
|
<Tr t={t.title} />
|
||||||
|
@ -190,6 +190,7 @@
|
||||||
type="string"
|
type="string"
|
||||||
value={username}
|
value={username}
|
||||||
on:submit={() => load()}
|
on:submit={() => load()}
|
||||||
|
cls="shrink-0 border-interactive border-2"
|
||||||
/>
|
/>
|
||||||
{#if loadingData}
|
{#if loadingData}
|
||||||
<Loading />
|
<Loading />
|
||||||
|
|
|
@ -21,7 +21,7 @@ class QuestionViz implements SpecialVisualizationSvelte {
|
||||||
funcName = "questions"
|
funcName = "questions"
|
||||||
needsUrls = []
|
needsUrls = []
|
||||||
docs =
|
docs =
|
||||||
"The special element which shows the questions which are unkown. Added by default if not yet there"
|
"The special element which shows the questions which are unknown. Added by default if not yet there"
|
||||||
args = [
|
args = [
|
||||||
{
|
{
|
||||||
name: "labels",
|
name: "labels",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue