Merge develop
This commit is contained in:
commit
5a9f8f0a0a
62 changed files with 4448 additions and 710 deletions
25
.versionrc.json
Normal file
25
.versionrc.json
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"types": [
|
||||||
|
{"type": "feat", "section": "Features"},
|
||||||
|
{"type": "fix", "section": "Bug Fixes"},
|
||||||
|
{"type": "themes", "section": "Theme improvements"},
|
||||||
|
{"type": "UX",
|
||||||
|
"section": "User experience improvements"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UI",
|
||||||
|
"section": "User interface improvements"
|
||||||
|
},
|
||||||
|
{"type": "Search",
|
||||||
|
"section": "Search related features"
|
||||||
|
},
|
||||||
|
{"type": "chore", "hidden": true},
|
||||||
|
{"type": "docs", "hidden": true},
|
||||||
|
{"type": "style", "hidden": true},
|
||||||
|
{"type": "refactor", "hidden": true},
|
||||||
|
{"type": "perf", "hidden": true},
|
||||||
|
{"type": "test", "hidden": true}
|
||||||
|
],
|
||||||
|
"commitUrlFormat": "https://github.com/USERNAME/REPOSITORY_NAME/commits{{hash}}",
|
||||||
|
"compareUrlFormat": "https://github.com/USERNAME/REPOSITORY_NAME/compare/{{previousTag}}...{{currentTag}}"
|
||||||
|
}
|
631
CHANGELOG.md
Normal file
631
CHANGELOG.md
Normal file
|
@ -0,0 +1,631 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
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.46.8](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.7...v0.46.8) (2024-09-13)
|
||||||
|
|
||||||
|
|
||||||
|
### Theme improvements
|
||||||
|
|
||||||
|
* improve note theme, fix [#2088](https://github.com/pietervdvn/MapComplete/issues/2088) ([e8099b9](https://github.com/USERNAME/REPOSITORY_NAME/commitse8099b9081ae25ff37f2b7a491f9301a29772080))
|
||||||
|
* update safe_loops svg ([70117ac](https://github.com/USERNAME/REPOSITORY_NAME/commits70117ac6874ec860a6f2497c2230d29248de71a7))
|
||||||
|
|
||||||
|
### 0.46.7 (2024-09-13)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* add bike_parking=safe_loops ([e4de3d8](https://github.com/USERNAME/REPOSITORY_NAME/commitse4de3d8e5f2b8e6002e68dba20ac659f57a3c8cc))
|
||||||
|
* add color for streets with no cycleways ([5d52462](https://github.com/USERNAME/REPOSITORY_NAME/commits5d524629b46d3e2e1d059f9db3010609e05ffb61))
|
||||||
|
* add prettier config ([d3f453a](https://github.com/USERNAME/REPOSITORY_NAME/commitsd3f453a4fb3f7eaac9031026dc95bff0a076dec3))
|
||||||
|
* Add printer cartridges to recycling ([28d6637](https://github.com/USERNAME/REPOSITORY_NAME/commits28d66373680dda160b4b899621c5c89aa1c52143))
|
||||||
|
* **themes:** add osm community index as a layer ([e85cf43](https://github.com/USERNAME/REPOSITORY_NAME/commitse85cf43ffbf9de86491a2d3aaa4b7f0a52082843))
|
||||||
|
* **themes:** add questionHint to give extra information about a question ([d7fe3a0](https://github.com/USERNAME/REPOSITORY_NAME/commitsd7fe3a056ef74d85f3d4e310a6e053b244b659f8))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* _actually_ fix [#1706](https://github.com/pietervdvn/MapComplete/issues/1706) ([6577007](https://github.com/USERNAME/REPOSITORY_NAME/commits6577007717910bf46086490da8e9d549b63f1891))
|
||||||
|
* _actually_ run the *.spec.ts-tests... ([82a860c](https://github.com/USERNAME/REPOSITORY_NAME/commits82a860cbf5bad2ab1b4d9b806e9f18e4d5cbc054))
|
||||||
|
* [#1093](https://github.com/pietervdvn/MapComplete/issues/1093) ([5a6ed7b](https://github.com/USERNAME/REPOSITORY_NAME/commits5a6ed7bf21aaaf677c05e572afacd53443eb2d59))
|
||||||
|
* [#1685](https://github.com/pietervdvn/MapComplete/issues/1685), fix oopsie ([d96fe61](https://github.com/USERNAME/REPOSITORY_NAME/commitsd96fe614624771bed99c418bbc9bb4f09ce7bd3a))
|
||||||
|
* a freeform key will mimick a mapping if appropriate (and avoid the 'addExtraTags') ([68ea4e3](https://github.com/USERNAME/REPOSITORY_NAME/commits68ea4e3d9f255e989cf158159b434ed6bfc6f55a))
|
||||||
|
* actually allow to login via prominent login button ([4be49a0](https://github.com/USERNAME/REPOSITORY_NAME/commits4be49a0561531c729d9d46d5e99571056d2492df))
|
||||||
|
* actually apply preferred background layer ([b69c2de](https://github.com/USERNAME/REPOSITORY_NAME/commitsb69c2de3f41e7737ceec919214f0748634d9dfd3))
|
||||||
|
* actually attempt to login when login button is pressed ([f1de8a3](https://github.com/USERNAME/REPOSITORY_NAME/commitsf1de8a3d9dafad4860ebb380c113ff2f253d13db))
|
||||||
|
* actually deploy on the production repo ([ca89956](https://github.com/USERNAME/REPOSITORY_NAME/commitsca899561d55626b9c2c14f90d60d01c8c1276823))
|
||||||
|
* actually include _all_ features ([8f7b731](https://github.com/USERNAME/REPOSITORY_NAME/commits8f7b731d29ca7daec1063a6833716e86333b0ffd))
|
||||||
|
* actually load geojson layers; formatting ([cbc4e6e](https://github.com/USERNAME/REPOSITORY_NAME/commitscbc4e6eb15a2a6d7f9693a24f35839886b4f3544))
|
||||||
|
* actually open usersettings when license is clicked ([c10fecb](https://github.com/USERNAME/REPOSITORY_NAME/commitsc10fecb7e8293190b07a2fc3ff90b6f830a75103))
|
||||||
|
* actually pass the initial coordinate in the locationInput element, fix [#1486](https://github.com/pietervdvn/MapComplete/issues/1486) ([68e07d7](https://github.com/USERNAME/REPOSITORY_NAME/commits68e07d7d7beca5b4ea26b9fc6ff964014d28af4b))
|
||||||
|
* Actually show errors in custom themes now ([6a79dde](https://github.com/USERNAME/REPOSITORY_NAME/commits6a79dde743264c272e461614ae718044d90a7080))
|
||||||
|
* actually show HD image for nearby streetview imager, add loading indicator ([8b6ee87](https://github.com/USERNAME/REPOSITORY_NAME/commits8b6ee877f08a584df7d3bc8706292b6eeb11f030))
|
||||||
|
* actually show polygon_centroid ([5a957d5](https://github.com/USERNAME/REPOSITORY_NAME/commits5a957d56c73771a1fa2560dbd8755a7eebe36285))
|
||||||
|
* actually show tags on changes when the user has enough changesets ([d702134](https://github.com/USERNAME/REPOSITORY_NAME/commitsd7021344e890bede888ea3412270420e033207f7))
|
||||||
|
* actually upload new themes ([6446586](https://github.com/USERNAME/REPOSITORY_NAME/commits6446586ac581fa3994e58dba62a365afde7d5937))
|
||||||
|
* add 'maxspeed=20' to living street ([fd9c48b](https://github.com/USERNAME/REPOSITORY_NAME/commitsfd9c48b5b56fe7a08e3532cad777246b82b3a073))
|
||||||
|
* add 'onbeforeunload' if images are uploading, see [#1841](https://github.com/pietervdvn/MapComplete/issues/1841) ([ce7bc8f](https://github.com/USERNAME/REPOSITORY_NAME/commitsce7bc8fb6cc373e96179e57395818d6e6befd942))
|
||||||
|
* add 'self' to connect-src ([3bca130](https://github.com/USERNAME/REPOSITORY_NAME/commits3bca1305b504ba08203a09916fe849365eca0458))
|
||||||
|
* add all global layers to CSP ([93630bd](https://github.com/USERNAME/REPOSITORY_NAME/commits93630bd1db9e71f5e62619b2d02aaf18b42222f6))
|
||||||
|
* add all needed urls again ([ce1855b](https://github.com/USERNAME/REPOSITORY_NAME/commitsce1855b2bd322044f9710a4dab38287298ad5fc6))
|
||||||
|
* add all vector layers to CSP ([2736740](https://github.com/USERNAME/REPOSITORY_NAME/commits2736740cd0d777450f8da7eea76f1defa7993944))
|
||||||
|
* add awaitAnimationFrame to fix non-working questions ([d744fd3](https://github.com/USERNAME/REPOSITORY_NAME/commitsd744fd3a42bedb64de7de1562b6f4ee31ba9d254))
|
||||||
|
* Add button to go back to the map when showing that a point is deleted, fix [#1417](https://github.com/pietervdvn/MapComplete/issues/1417) ([55903d4](https://github.com/USERNAME/REPOSITORY_NAME/commits55903d45f933ebbfd7971a14296fe2dac1b6fa96))
|
||||||
|
* add carto vector layers again ([5e2a989](https://github.com/USERNAME/REPOSITORY_NAME/commits5e2a98924c2a0efdb1f75a213efe7114df5e0cae))
|
||||||
|
* add check for missing 'noopener' attributes; add missing noopener attributes ([6e8617c](https://github.com/USERNAME/REPOSITORY_NAME/commits6e8617c93fd0fde8f0b27c035625e68d143f9b58))
|
||||||
|
* add check that no changeset is opened without actually having changes ([2843b01](https://github.com/USERNAME/REPOSITORY_NAME/commits2843b01586fd40a2e0d4dc92861b9d001d1684d3))
|
||||||
|
* add correct attribution for maptiler bg layer ([c90b334](https://github.com/USERNAME/REPOSITORY_NAME/commitsc90b334678ac44346d82302599647236b3c0df09))
|
||||||
|
* add default value for setStatus ([eede2d1](https://github.com/USERNAME/REPOSITORY_NAME/commitseede2d17dd411a3b27295a9efab8cb69df3b57c2))
|
||||||
|
* add dutch translation ([a55b84d](https://github.com/USERNAME/REPOSITORY_NAME/commitsa55b84dba18564e0959bd709b0da0e5b228d3ca0))
|
||||||
|
* add execute permissions to build script ([5567869](https://github.com/USERNAME/REPOSITORY_NAME/commits5567869bb4ede7a56c174b960aff734de06ea67f))
|
||||||
|
* add extra refresh:layeroverview in order to fix the favourites theme icons ([c65ccdb](https://github.com/USERNAME/REPOSITORY_NAME/commitsc65ccdbc240ad5406189e48bd92c40569d19bc3c))
|
||||||
|
* add glow effect to bench theme for selected object ([75b1a46](https://github.com/USERNAME/REPOSITORY_NAME/commits75b1a467e0307cee94a0af9e482a3ab5e8ac4ccd))
|
||||||
|
* add glow effect when dropping an image in the file selector; fix [#1496](https://github.com/pietervdvn/MapComplete/issues/1496) ([426620a](https://github.com/USERNAME/REPOSITORY_NAME/commits426620a76c4a6ca86181dec73da90d076f73c9aa))
|
||||||
|
* add language picker in settings page if logged out, fix [#1505](https://github.com/pietervdvn/MapComplete/issues/1505) ([a7ff3b8](https://github.com/USERNAME/REPOSITORY_NAME/commitsa7ff3b86faa90e70d3496f973c72b0265f993708))
|
||||||
|
* add links and overpass link to cafe_pub ([41b6eea](https://github.com/USERNAME/REPOSITORY_NAME/commits41b6eea430cbb6f504deb7a3e4fb5cf493004d6f))
|
||||||
|
* add maxzoom to osm.carto-layer, see [#1664](https://github.com/pietervdvn/MapComplete/issues/1664)$ ([5f918b6](https://github.com/USERNAME/REPOSITORY_NAME/commits5f918b607b9034c5a8ce6bcdd003caf8efe1466b))
|
||||||
|
* add missing assets ([f2b8c0d](https://github.com/USERNAME/REPOSITORY_NAME/commitsf2b8c0db0f80bf503f2b4332d66cbede0736f82a))
|
||||||
|
* add missing tag ([c5300a3](https://github.com/USERNAME/REPOSITORY_NAME/commitsc5300a3fd5b46e611a4604ad9c0483f823396dda))
|
||||||
|
* add new items works again, fix [#1593](https://github.com/pietervdvn/MapComplete/issues/1593) ([c527427](https://github.com/USERNAME/REPOSITORY_NAME/commitsc527427f70990006b9c71ef472bbe45d2c9bff70))
|
||||||
|
* add safety check to not overuse the OSM-api ([4602df3](https://github.com/USERNAME/REPOSITORY_NAME/commits4602df30469b57a57b9b8e1b8c6cc5c70ff901d7))
|
||||||
|
* add script integrity, add check to validate that script integrity is always in place ([08bbbca](https://github.com/USERNAME/REPOSITORY_NAME/commits08bbbcabc402abcf328274bb2990d59b47580376))
|
||||||
|
* add selection indicator to artwork ([ec99ab2](https://github.com/USERNAME/REPOSITORY_NAME/commitsec99ab24f806e8d43ae89ab8f33f570f43ce59fb))
|
||||||
|
* add support for legacy iconSize to fix some custom themes, see [#1494](https://github.com/pietervdvn/MapComplete/issues/1494) ([200361b](https://github.com/USERNAME/REPOSITORY_NAME/commits200361bf8dcd17f47574539137b2c42cb745143a))
|
||||||
|
* add text on cancel button ([1208e09](https://github.com/USERNAME/REPOSITORY_NAME/commits1208e095cf3fe87a2c9948a0c6666705c14c5e52))
|
||||||
|
* add the minimap again ([e83b8cb](https://github.com/USERNAME/REPOSITORY_NAME/commitse83b8cb19183b53c4d6b24b4f621900fd14280fa))
|
||||||
|
* addnewpoint-dialog works again ([8ed0a32](https://github.com/USERNAME/REPOSITORY_NAME/commits8ed0a32d153d4a434602c86a85eaf02881f6d480))
|
||||||
|
* alias 'urls' as 'website', fix [#246](https://github.com/pietervdvn/MapComplete/issues/246) ([87e79b8](https://github.com/USERNAME/REPOSITORY_NAME/commits87e79b8e8c981f5b0daa105097c514273ce6be3e))
|
||||||
|
* allow selection of the first radiobutton ([8fafd0a](https://github.com/USERNAME/REPOSITORY_NAME/commits8fafd0a8a5701323c6e25210ac6310dc418e31eb))
|
||||||
|
* allow to delete freeform values in more cases ([9b78838](https://github.com/USERNAME/REPOSITORY_NAME/commits9b78838745f41f3e42f158c9959c695e4160e7e8))
|
||||||
|
* allow to link multiple mapillary-images ([286fe72](https://github.com/USERNAME/REPOSITORY_NAME/commits286fe729359db1ec36328768a6a7662a9e951ce8))
|
||||||
|
* allow to move (non-snapped) points again after fixing [#1809](https://github.com/pietervdvn/MapComplete/issues/1809) ([77f07f5](https://github.com/USERNAME/REPOSITORY_NAME/commits77f07f55ecf9140c1c556fb4147c7d5cb74b0645))
|
||||||
|
* alltags shows objects as JSON instead as [object Object] ([1df28ab](https://github.com/USERNAME/REPOSITORY_NAME/commits1df28ab50199310928974a07809b65e854df1525))
|
||||||
|
* also copy png assets ([8f32916](https://github.com/USERNAME/REPOSITORY_NAME/commits8f32916454b63939d63c7496f7ba7b30f6f038cc))
|
||||||
|
* also show location info on shake if GPS is disabled ([4c5d24a](https://github.com/USERNAME/REPOSITORY_NAME/commits4c5d24a0a7dacc393c0a4328c99b5e5e08058b0b))
|
||||||
|
* always allow www.openstreetmap.org ([6b4be12](https://github.com/USERNAME/REPOSITORY_NAME/commits6b4be1200c60664bbbee87f9f8f8e3d821a277c3))
|
||||||
|
* always link to the wiki when tags are shown ([8dfef62](https://github.com/USERNAME/REPOSITORY_NAME/commits8dfef624323b8b93098150115d93f4089b846fb2))
|
||||||
|
* attempt to fix build ([0e8c3b1](https://github.com/USERNAME/REPOSITORY_NAME/commits0e8c3b10626f6f37e54b8ef96c11fb5dc113fe7a))
|
||||||
|
* attempt to fix build ([0e760b9](https://github.com/USERNAME/REPOSITORY_NAME/commits0e760b908c4955300b9d329f6d7eb9fb475713d3))
|
||||||
|
* attributes to answered questions didn't automatically show, questions which became available are now shown if they become avaible because of a tag change. Fix [#1587](https://github.com/pietervdvn/MapComplete/issues/1587) ([7de0af1](https://github.com/USERNAME/REPOSITORY_NAME/commits7de0af15f100815288fea4fdb13f3e845bc79088))
|
||||||
|
* await 'country' to be loaded ([3c5bde1](https://github.com/USERNAME/REPOSITORY_NAME/commits3c5bde1ae3ff3ed1aa72bb1463a4690e16f941e6))
|
||||||
|
* background layer csp fixe ([713e53c](https://github.com/USERNAME/REPOSITORY_NAME/commits713e53c41a840ae1e66cb9a36e06e0e9361285bd))
|
||||||
|
* better error handling and handling of changes ([7813653](https://github.com/USERNAME/REPOSITORY_NAME/commits78136532651ebcea6a2d2d94e42b2775bb9e92e3))
|
||||||
|
* better select available levels ([7b73578](https://github.com/USERNAME/REPOSITORY_NAME/commits7b73578f88b09ee65f923c363a884d91f20d2fae))
|
||||||
|
* broken titleIcons (fix [#1344](https://github.com/pietervdvn/MapComplete/issues/1344)) ([bdcf8a2](https://github.com/USERNAME/REPOSITORY_NAME/commitsbdcf8a26014b01e8128ece897e4b98286722d0e4))
|
||||||
|
* browser specific bug which caused the file selector to open twice on chromium; fix [#1771](https://github.com/pietervdvn/MapComplete/issues/1771) ([9893e43](https://github.com/USERNAME/REPOSITORY_NAME/commits9893e433f3bb43fbea80beb2a73ea4e271a01491))
|
||||||
|
* bug submitted comments on notes twice ([5be4b9d](https://github.com/USERNAME/REPOSITORY_NAME/commits5be4b9d1fb1e5a5e2cb03e314d4d65370aa44957))
|
||||||
|
* build ([cef7e01](https://github.com/USERNAME/REPOSITORY_NAME/commitscef7e01a2e7855d214d4a5ca75fc032a2b1d123a))
|
||||||
|
* build ([8556196](https://github.com/USERNAME/REPOSITORY_NAME/commits8556196acec5652ab39baaaa14ac911cb6dc5a15))
|
||||||
|
* build ([dbca260](https://github.com/USERNAME/REPOSITORY_NAME/commitsdbca2601324cd79d5d2d7d0398d002565d8825de))
|
||||||
|
* build ([2a21040](https://github.com/USERNAME/REPOSITORY_NAME/commits2a2104055185e1f9fa8f1cad620606b690527a0c))
|
||||||
|
* build ([29ee113](https://github.com/USERNAME/REPOSITORY_NAME/commits29ee113e30c11edc670331f1fb67f41e08f9ab50))
|
||||||
|
* build, some metatagging errors ([0d529e7](https://github.com/USERNAME/REPOSITORY_NAME/commits0d529e7cca4f044ab4c5fd4491e3704678598862))
|
||||||
|
* build; subtle bug ([5644c7a](https://github.com/USERNAME/REPOSITORY_NAME/commits5644c7a8b87a0fb17e846a4c370ac432cc03ca15))
|
||||||
|
* bypass missing favourites in custom theme loader ([6f59e46](https://github.com/USERNAME/REPOSITORY_NAME/commits6f59e46befd0ba1df57066400f3d2bbf00166f5b))
|
||||||
|
* charging station theme uses anchor too ([39024eb](https://github.com/USERNAME/REPOSITORY_NAME/commits39024eb5f3f68b5dba6b10d8dcf07fe2c5c67fbc))
|
||||||
|
* charging_station.protojson ([f042ca4](https://github.com/USERNAME/REPOSITORY_NAME/commitsf042ca40701e269a02254289a35acd43aaed05b0))
|
||||||
|
* chromium browsers don't handle spaces in `tel:`-links well ([4168ef0](https://github.com/USERNAME/REPOSITORY_NAME/commits4168ef01e333784f738fafa15d1eb7d7c4c527c7))
|
||||||
|
* cleanup merge ([e160510](https://github.com/USERNAME/REPOSITORY_NAME/commitse16051025a0f7c827c90db7251596be0c5e902c9))
|
||||||
|
* cleanup of wikipedia panel, fix [#1570](https://github.com/pietervdvn/MapComplete/issues/1570) ([203f24f](https://github.com/USERNAME/REPOSITORY_NAME/commits203f24fca01047edd2f01ed541fc93841ac1f17d))
|
||||||
|
* clicking the magnifying icon actually works now ([5478711](https://github.com/USERNAME/REPOSITORY_NAME/commits5478711bed8806d4cd5ae0ffe69ab64f3293fa69))
|
||||||
|
* compilation warning ([5851531](https://github.com/USERNAME/REPOSITORY_NAME/commits5851531306b2cb2cebfb459e5c5bef284b8c3e94))
|
||||||
|
* correct 'sync repo' step ([ecd84c2](https://github.com/USERNAME/REPOSITORY_NAME/commitsecd84c2cf6174bddad5d1759caeeeea761e1b9f1))
|
||||||
|
* correct CSP header for iOs/safari ([54868de](https://github.com/USERNAME/REPOSITORY_NAME/commits54868debec137c57b8dd45024332854150cc8f0f))
|
||||||
|
* correct default access assumption ([ea06152](https://github.com/USERNAME/REPOSITORY_NAME/commitsea061524737b343bec120356b8822d185cdefd85))
|
||||||
|
* correct default sed param for BSD sed flavor ([46fe1c5](https://github.com/USERNAME/REPOSITORY_NAME/commits46fe1c5795a110c541ed97548c426b205705ff2d))
|
||||||
|
* correct faulty name ([0952200](https://github.com/USERNAME/REPOSITORY_NAME/commits09522004db01453dcdb9a26670c3d7ef6f4e1eee))
|
||||||
|
* correct filters ([4d2d541](https://github.com/USERNAME/REPOSITORY_NAME/commits4d2d54175ca5b4af5a258bf7d1b89debab9f8f8e))
|
||||||
|
* correct maybe missing option in etymology layer ([a8ecab4](https://github.com/USERNAME/REPOSITORY_NAME/commitsa8ecab4d794c219301d636594933520c87fd8d75))
|
||||||
|
* correct merge conflict ([e6d8401](https://github.com/USERNAME/REPOSITORY_NAME/commitse6d84019a579daed01a34cf67825689511fd9c0a))
|
||||||
|
* correct minzoom on all themes ([bde5878](https://github.com/USERNAME/REPOSITORY_NAME/commitsbde5878fedae0eac20db8bb4c6eca81f904e20fd))
|
||||||
|
* correct sed command to be OSX compatible ([e21eb65](https://github.com/USERNAME/REPOSITORY_NAME/commitse21eb6596ee85471b8cbbd6776fa65647786bfda))
|
||||||
|
* correct typings ([2f17e6e](https://github.com/USERNAME/REPOSITORY_NAME/commits2f17e6e53259193c06d1764188a1a9602fbd97bb))
|
||||||
|
* Correctly calculate available levels, reselect last_click automatically ([4c962ea](https://github.com/USERNAME/REPOSITORY_NAME/commits4c962eab21af8146d9d57f7d12cd08cdd4a642d6))
|
||||||
|
* correctly escape markdown ([4d01d81](https://github.com/USERNAME/REPOSITORY_NAME/commits4d01d81e1e87ca5a18b6d0fd7b9f232c77cda936))
|
||||||
|
* correctly flatten special cases ([7ba0e73](https://github.com/USERNAME/REPOSITORY_NAME/commits7ba0e736a87492bc64e5f73811a6c790851c59d9))
|
||||||
|
* correctly flatten special cases ([593d7bd](https://github.com/USERNAME/REPOSITORY_NAME/commits593d7bd07ac520875c5acfcab5df364fb04dd77c))
|
||||||
|
* correctly interpret 'hideInAnswer'-conditions, recalculate them dynamically ([37dc6a7](https://github.com/USERNAME/REPOSITORY_NAME/commits37dc6a71616fc9510d1bf6e814060390dd329629))
|
||||||
|
* correctly optimize 'key=A&key!=B' into 'key=A' ([d8a5f3c](https://github.com/USERNAME/REPOSITORY_NAME/commitsd8a5f3c2be985c4fcbedfda09564ae5d02e6e5b4))
|
||||||
|
* correctly replace fields in filterview ([ae491f4](https://github.com/USERNAME/REPOSITORY_NAME/commitsae491f491652798344273d18fb42f1d27108ba4b))
|
||||||
|
* crash in new note flow, spotted by [@thibaultmolleman](https://github.com/thibaultmolleman) ([3e49929](https://github.com/USERNAME/REPOSITORY_NAME/commits3e49929f253f8ae1f945d9df4eb3398b39030a43))
|
||||||
|
* css-generate script; loading of stylesheet in style_test, add small buttons to style_test ([6bed170](https://github.com/USERNAME/REPOSITORY_NAME/commits6bed170910cdf6fd2ca68eb9d1b65779287afa5d))
|
||||||
|
* CSV download ([c1bce7a](https://github.com/USERNAME/REPOSITORY_NAME/commitsc1bce7abc76984ddb84f112d1b7367e5822d5763))
|
||||||
|
* decent PDF-export ([de20b00](https://github.com/USERNAME/REPOSITORY_NAME/commitsde20b00b8f8af6796cbab060262d85a5ab171c5d))
|
||||||
|
* direction input does not scroll anymore when dragged, fix [#1468](https://github.com/pietervdvn/MapComplete/issues/1468) ([102892e](https://github.com/USERNAME/REPOSITORY_NAME/commits102892ec774501b2811179b333217fb81efe33bb))
|
||||||
|
* disable 'delete'-button if no reason is selected, fix [#1631](https://github.com/pietervdvn/MapComplete/issues/1631) ([6b6b1e3](https://github.com/USERNAME/REPOSITORY_NAME/commits6b6b1e32862c7021cff99c2b340a50ae5822cf60))
|
||||||
|
* disable check ([b2e7b7d](https://github.com/USERNAME/REPOSITORY_NAME/commitsb2e7b7d221a6dbc12f73505522a5d29bd6d36244))
|
||||||
|
* disable rotation on mobile if the user enabled this ([93a30fd](https://github.com/USERNAME/REPOSITORY_NAME/commits93a30fdba5edfd91c19050013aa4f58123ce127c))
|
||||||
|
* don't attempt to show an osm wiki page as image, fix [#1776](https://github.com/pietervdvn/MapComplete/issues/1776) ([7dc43f9](https://github.com/USERNAME/REPOSITORY_NAME/commits7dc43f933e84b73f99935ceba4638fe85e376c94))
|
||||||
|
* don't count layers if they are not shown by default, fix [#1840](https://github.com/pietervdvn/MapComplete/issues/1840) ([d848171](https://github.com/USERNAME/REPOSITORY_NAME/commitsd848171c3d795e31a73b10d687b475de30e8f39c))
|
||||||
|
* don't crash if 't' is undefined ([b1c4097](https://github.com/USERNAME/REPOSITORY_NAME/commitsb1c4097cb480785d2e644a3da072055d1778a17c))
|
||||||
|
* don't crash if no features nearby ([b6a4cc1](https://github.com/USERNAME/REPOSITORY_NAME/commitsb6a4cc11bdf25c4cf09e55ad802eb0d460311c9d))
|
||||||
|
* don't crash if no features nearby ([c2001f1](https://github.com/USERNAME/REPOSITORY_NAME/commitsc2001f17a55937bbc09e52d730828c9234bf30ef))
|
||||||
|
* don't measure compass if alpha is null, fix [#1787](https://github.com/pietervdvn/MapComplete/issues/1787) ([3461ed6](https://github.com/USERNAME/REPOSITORY_NAME/commits3461ed60990fc91e399ef3c4cd082029db2059dd))
|
||||||
|
* don't move the map after we jumped to the current GPS location ([f31b025](https://github.com/USERNAME/REPOSITORY_NAME/commitsf31b025b8dba7218576c58ef6bc2b3101052beb7))
|
||||||
|
* don't set invalid coordinates ([fbc3bce](https://github.com/USERNAME/REPOSITORY_NAME/commitsfbc3bce5109ffa95491b792d4c7870167f9915ba))
|
||||||
|
* don't show both counts and summary at the same time ([d6dbeca](https://github.com/USERNAME/REPOSITORY_NAME/commitsd6dbecace26b9dc52da61d19b767469190a0e8be))
|
||||||
|
* don't show duplicate entry of default baselayer if already added ([7ef1628](https://github.com/USERNAME/REPOSITORY_NAME/commits7ef1628d87f32240746251b3e7b4bfdfdbebf6cb))
|
||||||
|
* Don't show item if there is no label ([7edc730](https://github.com/USERNAME/REPOSITORY_NAME/commits7edc7302bbb6f0884e6652a429e00705f64413bb))
|
||||||
|
* don't show preset_type special vis if no presets are given ([cf3b414](https://github.com/USERNAME/REPOSITORY_NAME/commitscf3b4145ff68871a2040b15ccb6d030b59c448ad))
|
||||||
|
* don't show radiobuttons if only one option is available ([8e68ca0](https://github.com/USERNAME/REPOSITORY_NAME/commits8e68ca03ab33cf91df83f1e1d2750723cfb0370b))
|
||||||
|
* don't store location 0,0 to prevent movement or cursor in addNew-dialog ([c19317b](https://github.com/USERNAME/REPOSITORY_NAME/commitsc19317bd04a10db89ecbb95eda9b3156f50c395b))
|
||||||
|
* don't throw an error if there is no parent element which can be scrolled ([3166918](https://github.com/USERNAME/REPOSITORY_NAME/commits3166918551aab57bdf0777e7bd378003779f8c10))
|
||||||
|
* drag & drop for file selector ([5be24db](https://github.com/USERNAME/REPOSITORY_NAME/commits5be24dbef1647cd2c6c869d86ea5b37f0e072106))
|
||||||
|
* dynamic filtering with non-string values ([58b94c3](https://github.com/USERNAME/REPOSITORY_NAME/commits58b94c38e50c5a9c66ac248fe8117b19bac7d05a))
|
||||||
|
* effectively show `contact:website` in title icons ([0027299](https://github.com/USERNAME/REPOSITORY_NAME/commits0027299a3e373e9cd19deec0b93dd7a7599ff78a))
|
||||||
|
* emit warning for invalid suggestions ([56ba426](https://github.com/USERNAME/REPOSITORY_NAME/commits56ba426ab5bb2f10ac38776728a67ff4558e0cfa))
|
||||||
|
* enable editing questions (and settings) again (oopsie) ([d079ba9](https://github.com/USERNAME/REPOSITORY_NAME/commitsd079ba91aa29395262b8084f811eec26e51750b9))
|
||||||
|
* enable external data sources from the ELI ([5ea0804](https://github.com/USERNAME/REPOSITORY_NAME/commits5ea08040d7ec40abaabf849ef20771c1a5112637))
|
||||||
|
* enable login on index screen ([aface6a](https://github.com/USERNAME/REPOSITORY_NAME/commitsaface6aea7f1774b62c9218e64cd65bf77b97c0b))
|
||||||
|
* enable rainbow question again, fix [#1453](https://github.com/pietervdvn/MapComplete/issues/1453) ([af447a9](https://github.com/USERNAME/REPOSITORY_NAME/commitsaf447a948f3d425565afe5620a97123111d6bf91))
|
||||||
|
* enable settings again, fix [#1815](https://github.com/pietervdvn/MapComplete/issues/1815) ([a118c29](https://github.com/USERNAME/REPOSITORY_NAME/commitsa118c295d641852584bbd16f07c419a3fa896591))
|
||||||
|
* error server properly names files, add status endpoint ([37c1d46](https://github.com/USERNAME/REPOSITORY_NAME/commits37c1d46dd43a9d75326a4f9187d4bb3846b4a211))
|
||||||
|
* escape special characters for wikipedia search, might improve [#1500](https://github.com/pietervdvn/MapComplete/issues/1500) ([ec94253](https://github.com/USERNAME/REPOSITORY_NAME/commitsec94253d6c5ef38ee5d5d1c7bc25fff53cd6be82))
|
||||||
|
* etymology theme now supports multi-apply again, uses lower zoom level for multiselect ([90869a1](https://github.com/USERNAME/REPOSITORY_NAME/commits90869a1c985d992063656d89fe0d95b73184304a))
|
||||||
|
* Expose all templates ([09a3e7f](https://github.com/USERNAME/REPOSITORY_NAME/commits09a3e7fba1464835bfad061110f4352d9a47e173))
|
||||||
|
* facade gardens: restore forgottne rendering ([f8fa184](https://github.com/USERNAME/REPOSITORY_NAME/commitsf8fa1841e4df8627a18ee57c7c2cb943176557be))
|
||||||
|
* fill in freeform value if already set ([e0527e9](https://github.com/USERNAME/REPOSITORY_NAME/commitse0527e964702427014220e2978680e3e6a7cc774))
|
||||||
|
* fix [#1471](https://github.com/pietervdvn/MapComplete/issues/1471): add option to bench for 'does probably not have an artwork' ([91892d5](https://github.com/USERNAME/REPOSITORY_NAME/commits91892d50c5a5c5071838c8a38a24c60f1f7ed717))
|
||||||
|
* fix [#1477](https://github.com/pietervdvn/MapComplete/issues/1477). Setting the background caused a map.resize(), which in turn caused the coordinates to be set to 0,0, which caused the location-correction to kick in, moving the location input towards null island ([d95d96f](https://github.com/USERNAME/REPOSITORY_NAME/commitsd95d96fb1ba1a8886f05b118c0650a4af1ae5dd7))
|
||||||
|
* fix [#1503](https://github.com/pietervdvn/MapComplete/issues/1503), fix [#1571](https://github.com/pietervdvn/MapComplete/issues/1571) ([382f965](https://github.com/USERNAME/REPOSITORY_NAME/commits382f96596ed474bef086d64cabb748257416f2de))
|
||||||
|
* fix [#1506](https://github.com/pietervdvn/MapComplete/issues/1506), language-URL-parameter works again and is properly documented ([2942a2d](https://github.com/USERNAME/REPOSITORY_NAME/commits2942a2dae77d7c79b3af47b0c518342fa6c87454))
|
||||||
|
* fix [#1528](https://github.com/pietervdvn/MapComplete/issues/1528): from weblate to theme files did not properly sync ([3c08c12](https://github.com/USERNAME/REPOSITORY_NAME/commits3c08c1297423d74348aa83e5932a7fbd94c260e5))
|
||||||
|
* fix [#1529](https://github.com/pietervdvn/MapComplete/issues/1529) ([05bf79f](https://github.com/USERNAME/REPOSITORY_NAME/commits05bf79f7616af06aefea8e9f095e2b467d84a5d7))
|
||||||
|
* fix [#1532](https://github.com/pietervdvn/MapComplete/issues/1532) ([5d00f3c](https://github.com/USERNAME/REPOSITORY_NAME/commits5d00f3cc6a75a22732ec7ffa63d9335d9d75853c))
|
||||||
|
* fix [#1580](https://github.com/pietervdvn/MapComplete/issues/1580) ([56934b7](https://github.com/USERNAME/REPOSITORY_NAME/commits56934b79f6911da6d182c4e3f28bbd6749932c3e))
|
||||||
|
* fix [#1596](https://github.com/pietervdvn/MapComplete/issues/1596) ([0727a22](https://github.com/USERNAME/REPOSITORY_NAME/commits0727a228fd8bf9b7dd7ecc5b42d9225eab00bae7))
|
||||||
|
* fix [#1627](https://github.com/pietervdvn/MapComplete/issues/1627) ([e37f908](https://github.com/USERNAME/REPOSITORY_NAME/commitse37f90855fb3b1fd59d19506aca0e2ccc6a12fb2))
|
||||||
|
* fix [#1675](https://github.com/pietervdvn/MapComplete/issues/1675) ([65250d7](https://github.com/USERNAME/REPOSITORY_NAME/commits65250d77beec81f9d336302c4b185dcd14518917))
|
||||||
|
* fix [#1684](https://github.com/pietervdvn/MapComplete/issues/1684); add 'openid' to auth-tokens (will be needed in the future for geovisio integration) ([0a82dd0](https://github.com/USERNAME/REPOSITORY_NAME/commits0a82dd0edfd67c18b2c59c903d506cbb0d46ffc1))
|
||||||
|
* fix [#1713](https://github.com/pietervdvn/MapComplete/issues/1713) ([2720f5d](https://github.com/USERNAME/REPOSITORY_NAME/commits2720f5dd19deb2ebdcf1eae2229e2fbdd0adc4dd))
|
||||||
|
* fix [#1779](https://github.com/pietervdvn/MapComplete/issues/1779), add check to prevent similar errors ([417dc16](https://github.com/USERNAME/REPOSITORY_NAME/commits417dc1633e05b1b4776449eb245739232dea975e))
|
||||||
|
* fix [#1813](https://github.com/pietervdvn/MapComplete/issues/1813). For some reason, importing a .js-file suddenly fails, so ported it to typescript ([cab414e](https://github.com/USERNAME/REPOSITORY_NAME/commitscab414e80895933b4ae874be5fd77b90b8c13f3f))
|
||||||
|
* fix [#1817](https://github.com/pietervdvn/MapComplete/issues/1817), some more improvements to the loading screen ([6394ee8](https://github.com/USERNAME/REPOSITORY_NAME/commits6394ee8e6800d2cd23d30383ffea9629964c4dc9))
|
||||||
|
* fix [#1844](https://github.com/pietervdvn/MapComplete/issues/1844) ([e11442e](https://github.com/USERNAME/REPOSITORY_NAME/commitse11442e1009465e8bc3e8823e8d66fe44fb5f9c2))
|
||||||
|
* fix [#1883](https://github.com/pietervdvn/MapComplete/issues/1883); display underground railway lines in a subtler rendering ([b3299cd](https://github.com/USERNAME/REPOSITORY_NAME/commitsb3299cdd733152820e30c18463e551059654d3fb))
|
||||||
|
* fix [#1906](https://github.com/pietervdvn/MapComplete/issues/1906) ([3ab1d15](https://github.com/USERNAME/REPOSITORY_NAME/commits3ab1d1591fde7e31efe4e6186af78b71987c1498))
|
||||||
|
* fix [#1917](https://github.com/pietervdvn/MapComplete/issues/1917) ([8c65448](https://github.com/USERNAME/REPOSITORY_NAME/commits8c6544883469d9634fca285b600fa05706dcdbfa))
|
||||||
|
* fix [#1917](https://github.com/pietervdvn/MapComplete/issues/1917) ([903a11d](https://github.com/USERNAME/REPOSITORY_NAME/commits903a11d4e7c832ad46d3afd4ed9786df6e6d1331))
|
||||||
|
* fix anonymous reviews; fix [#1868](https://github.com/pietervdvn/MapComplete/issues/1868) ([073cd69](https://github.com/USERNAME/REPOSITORY_NAME/commits073cd692e456ae63999bfc2770d0c204dc8a1793))
|
||||||
|
* fix back-button on the 404-page, remove some obsolete classes ([006f695](https://github.com/USERNAME/REPOSITORY_NAME/commits006f69561a08a1c3a3577ada83e9b3954d8332f2))
|
||||||
|
* fix bug icon ([1fea2b5](https://github.com/USERNAME/REPOSITORY_NAME/commits1fea2b56be82e8a9a5db2683ee55a5a81ec7e7f2))
|
||||||
|
* fix bug with incorrect translation context for themes ([368f9ad](https://github.com/USERNAME/REPOSITORY_NAME/commits368f9ad0c83eaeb40d4f7ae293d73d11714271e0))
|
||||||
|
* fix build ([0d705b9](https://github.com/USERNAME/REPOSITORY_NAME/commits0d705b97277a7c6cba5a57d071aeaace1a24fc5a))
|
||||||
|
* fix crash in studio ([b18d575](https://github.com/USERNAME/REPOSITORY_NAME/commitsb18d575ade434ec51a33684ff365ede7b93cfa79))
|
||||||
|
* fix dissappearing items to apply ([a935c03](https://github.com/USERNAME/REPOSITORY_NAME/commitsa935c03631614390a1ab43248f51e6ba0eb26956))
|
||||||
|
* fix domain name ([301f00f](https://github.com/USERNAME/REPOSITORY_NAME/commits301f00f6aef727981e2faa73e2093710ac25c337))
|
||||||
|
* fix file drag and drop, allow entire featurePopup for file drop ([859faea](https://github.com/USERNAME/REPOSITORY_NAME/commits859faead7fd8c6fa5ae73b70e41a753f34dfd5ff))
|
||||||
|
* fix icons in mappings which use a builtin svg ([ab28fbe](https://github.com/USERNAME/REPOSITORY_NAME/commitsab28fbe35c97de56e765bc3b35277489aebb1872))
|
||||||
|
* fix incorrectly linked translation in privacy policy ([e2aaa7d](https://github.com/USERNAME/REPOSITORY_NAME/commitse2aaa7d435ee91d20a62e8380300ec27418e93c1))
|
||||||
|
* fix link image action ([ce55b4c](https://github.com/USERNAME/REPOSITORY_NAME/commitsce55b4c7d8659044b93a03afaaa37d272a6b48ab))
|
||||||
|
* fix maps ([e48571a](https://github.com/USERNAME/REPOSITORY_NAME/commitse48571a80a03418d5c0c61304dbb166a67740ddc))
|
||||||
|
* fix move dialog ([084cd86](https://github.com/USERNAME/REPOSITORY_NAME/commits084cd86b71bbc26e3b7542a5f16ecc1715275a50))
|
||||||
|
* fix multi-visualisation ([872e36d](https://github.com/USERNAME/REPOSITORY_NAME/commits872e36dffa6810f599e06778010f8b00056b976c))
|
||||||
|
* fix nearby drinking water fountain detection ([13ebcff](https://github.com/USERNAME/REPOSITORY_NAME/commits13ebcffab102fdcda6263c22cdd12bc22a6f86f7))
|
||||||
|
* fix nearby drinking water fountain detection ([a5276eb](https://github.com/USERNAME/REPOSITORY_NAME/commitsa5276eb4e67ed939e5b34ad7ffca61d6e41d679d))
|
||||||
|
* fix query:licenses ([e0ee3ed](https://github.com/USERNAME/REPOSITORY_NAME/commitse0ee3edf71388614a1bc07dc43aaf18def1a630e))
|
||||||
|
* fix rainbow crossings theme ([5b29177](https://github.com/USERNAME/REPOSITORY_NAME/commits5b291777be5a1aa4826ba894af76dbf4c09b9a7c))
|
||||||
|
* fix reverse tabnabbing in most cases, add rel=noopener to most links to untrusted content ([d9b8257](https://github.com/USERNAME/REPOSITORY_NAME/commitsd9b8257e47f7c2e2ce06e4a0fcad8830764dae8e))
|
||||||
|
* fix scrolling for 'addNewPoint' ([637cebe](https://github.com/USERNAME/REPOSITORY_NAME/commits637cebefc7685d64ae5286c2a5f63afb3193a2db))
|
||||||
|
* fix scrolling for 'addNewPoint' ([f697d29](https://github.com/USERNAME/REPOSITORY_NAME/commitsf697d292a3ab6bf3114d5f7055c908203efbc8e0))
|
||||||
|
* fix settings menu ([2b728fd](https://github.com/USERNAME/REPOSITORY_NAME/commits2b728fdf8bd6effce1682119f7f0d67a13d1c97d))
|
||||||
|
* fix styling of translate button in titles ([0a8164c](https://github.com/USERNAME/REPOSITORY_NAME/commits0a8164c378ca4aaa1e34dc3bbd4e2741e5bc6318))
|
||||||
|
* fix tests; use OAuth client id from dedicated MapComplete account ([fc9dd46](https://github.com/USERNAME/REPOSITORY_NAME/commitsfc9dd462399a3b7ed8959c38c4a97f24895f9ca8))
|
||||||
|
* fix translate icon, fix [#1832](https://github.com/pietervdvn/MapComplete/issues/1832) ([064c601](https://github.com/USERNAME/REPOSITORY_NAME/commits064c60163c19e55d098e1b1061cf3b8df3dcf782))
|
||||||
|
* fix UK-Addresses themes again ([370b200](https://github.com/USERNAME/REPOSITORY_NAME/commits370b200bb33f26db448e5d3feda2107f2224d232))
|
||||||
|
* fix updating of styles ([650c1a6](https://github.com/USERNAME/REPOSITORY_NAME/commits650c1a675c783179482338f449ca1202246916a0))
|
||||||
|
* fix validation of question input; remove some obsolete logging; stabilize output of generate:translations wrt newlines ([1f39ba9](https://github.com/USERNAME/REPOSITORY_NAME/commits1f39ba9ab50f63e04be89f676aa82c04d5bb2f94))
|
||||||
|
* fixes to etymology: load wikidata on mobile (which uses m.wikidata.org, tripping the CSP); fix 'upload image of the streetsign' parameters ([480956d](https://github.com/USERNAME/REPOSITORY_NAME/commits480956d45dc767c77848ba32b176af373e73060a))
|
||||||
|
* force downloading (without cache) before uploading ([b85b2ac](https://github.com/USERNAME/REPOSITORY_NAME/commitsb85b2ace0b373aeae1b9cef8e748ddea7cd3ca5c))
|
||||||
|
* force redrawing the questions in a questionbox to avoid rendering artefacts and unselectable items ([f7e2dc7](https://github.com/USERNAME/REPOSITORY_NAME/commitsf7e2dc7457f366d9cf4722beccfe6b16467ab435))
|
||||||
|
* generate layeroverview ([ce654cb](https://github.com/USERNAME/REPOSITORY_NAME/commitsce654cbcf9d7164121ee539836c3f7775d93365d))
|
||||||
|
* generate layeroverview ([e71a1c7](https://github.com/USERNAME/REPOSITORY_NAME/commitse71a1c7a3d011b921c6ff08dcc54f93dd84971dc))
|
||||||
|
* generateCSP ([a612d4e](https://github.com/USERNAME/REPOSITORY_NAME/commitsa612d4e1c2f6469c7b2d1fc66c8fc416ccdcac1a))
|
||||||
|
* generating layeroverview; performance: do not try to download ratings if no ratings element is present ([fc62d41](https://github.com/USERNAME/REPOSITORY_NAME/commitsfc62d41e1b832278bb0c846ffcaa971273419730))
|
||||||
|
* giving a review is possible again ([0879ff9](https://github.com/USERNAME/REPOSITORY_NAME/commits0879ff97ed4b0b5de572dbf50cc45433b60423f2))
|
||||||
|
* giving a review is possible again ([a75fc0d](https://github.com/USERNAME/REPOSITORY_NAME/commitsa75fc0d21550495ea2e579922af9b27b2b2a6e22))
|
||||||
|
* gps-icon should turn into an arrow again ([ef93ad1](https://github.com/USERNAME/REPOSITORY_NAME/commitsef93ad126f5c6b973fb2f66c368522ebdee07543))
|
||||||
|
* handle NBSP in svg ([4190bf7](https://github.com/USERNAME/REPOSITORY_NAME/commits4190bf79339330601b4d6d426c45cfc6e431ef61))
|
||||||
|
* hash would not clear because the update method unregistered itself ([8dd7f34](https://github.com/USERNAME/REPOSITORY_NAME/commits8dd7f34ad733080e9e5e648a91942528d96857ed))
|
||||||
|
* hidden theme link not working ([d5e128b](https://github.com/USERNAME/REPOSITORY_NAME/commitsd5e128b1ed71fb7be7402bbe4ed86edcd6e5a6b0))
|
||||||
|
* hide 'addnewpoint'-icon when closing the dialog ([499ad85](https://github.com/USERNAME/REPOSITORY_NAME/commits499ad85f1efd0aefd2cf757198eaef5af037c7ee))
|
||||||
|
* hide some elements of the UI if they are disabled by a featureSwitch ([17503d5](https://github.com/USERNAME/REPOSITORY_NAME/commits17503d5bfb63c5c03968c96f15c2c5a674a3ede3))
|
||||||
|
* hide tag_apply_button when applied ([622df2d](https://github.com/USERNAME/REPOSITORY_NAME/commits622df2df19ce4fa7049447995194d0f28b91d59f))
|
||||||
|
* icons for rental in cyclofix theme ([02064a2](https://github.com/USERNAME/REPOSITORY_NAME/commits02064a2d8078b07aeb9e282700018c86638c4683))
|
||||||
|
* ifnot-value would show up together with the 'if'-value ([15f1a93](https://github.com/USERNAME/REPOSITORY_NAME/commits15f1a9362c624d3fec9680efa3e38edf912cbaf1))
|
||||||
|
* import ([98ca6aa](https://github.com/USERNAME/REPOSITORY_NAME/commits98ca6aa8aaac923b57d12f52b41f5ee13412b0a2))
|
||||||
|
* improve background layer switching code, might improve [#1481](https://github.com/pietervdvn/MapComplete/issues/1481) ([33fa11f](https://github.com/USERNAME/REPOSITORY_NAME/commits33fa11fc1728f017644977be2181c25441a76e18))
|
||||||
|
* improve deployscript for hetzner ([dcd02e9](https://github.com/USERNAME/REPOSITORY_NAME/commitsdcd02e9ad772346bc3f69ebd9563af80ea30810e))
|
||||||
|
* improve error message ([7f6c1f0](https://github.com/USERNAME/REPOSITORY_NAME/commits7f6c1f06e23cb249d2eadda9be08b1cafc680d30))
|
||||||
|
* improve first-sentence ([7aee442](https://github.com/USERNAME/REPOSITORY_NAME/commits7aee442ae49a7a68821917de9580ce9e62105edf))
|
||||||
|
* improve functionality of GRB-theme (WIP) ([b86e291](https://github.com/USERNAME/REPOSITORY_NAME/commitsb86e2910baba5fe37cf5c0f53a64966c85d159ce))
|
||||||
|
* improve optimization; add tests ([595503c](https://github.com/USERNAME/REPOSITORY_NAME/commits595503cfc35c8db3cb4ee4b28f82b7c91ee75dff))
|
||||||
|
* improve parsing of possible mapillary values ([3d54a83](https://github.com/USERNAME/REPOSITORY_NAME/commits3d54a8392be94a369bf388dad0f83f60fb5a5474))
|
||||||
|
* improve PDF-output functionality ([215286a](https://github.com/USERNAME/REPOSITORY_NAME/commits215286a5af46c58a197bf85b9561c26eff5bd8fe))
|
||||||
|
* include 'source' and tile URLs from vector tile sources into CSP, see [#1652](https://github.com/pietervdvn/MapComplete/issues/1652) ([09504e1](https://github.com/USERNAME/REPOSITORY_NAME/commits09504e18ecb4b85ceb6562fcdb0e21034e496ad8))
|
||||||
|
* include japanese dot as sentence separator ([d2c6689](https://github.com/USERNAME/REPOSITORY_NAME/commitsd2c668922b7ac5dc682461c6789fbbdb37fad8c3))
|
||||||
|
* include lod-proxy in CSp ([087c099](https://github.com/USERNAME/REPOSITORY_NAME/commits087c099e2e633237b00748ee5d3dbba454999881))
|
||||||
|
* incorrect path in error message ([5da8952](https://github.com/USERNAME/REPOSITORY_NAME/commits5da895276c5d5447bea7094d81d371e99458ff7e))
|
||||||
|
* **index:** search got confused as it didn't have an id for the list items ([6f42884](https://github.com/USERNAME/REPOSITORY_NAME/commits6f4288476eebf7b0e8af6177bff066d06f3823dc))
|
||||||
|
* init indexedFeatureStore with a default map as to fix crash upon loading if a pending change is present ([377c411](https://github.com/USERNAME/REPOSITORY_NAME/commits377c411143c577752014842bbc205093c9ebfdc4))
|
||||||
|
* initialize user settings with a strict value to be able to override it ([57e0093](https://github.com/USERNAME/REPOSITORY_NAME/commits57e0093e478f541c46145a72dbfb9fc70d467633))
|
||||||
|
* interpret missing level tag as 'level=0' ([5d8b422](https://github.com/USERNAME/REPOSITORY_NAME/commits5d8b42216236d49b6bcf328e8a009884f697e312))
|
||||||
|
* keep map mouse-interactive when panning with arrow keys, some CSS-tweaks ([512bb4c](https://github.com/USERNAME/REPOSITORY_NAME/commits512bb4c00e1fed39927c8bd40aaef378db64d648))
|
||||||
|
* layers now compile again ([1c99173](https://github.com/USERNAME/REPOSITORY_NAME/commits1c99173f32112b332ce38f926623fa2c27f89ab8))
|
||||||
|
* lines with opacity have colour again ([f0d9365](https://github.com/USERNAME/REPOSITORY_NAME/commitsf0d9365e06eb533f0bf0a47c21ce58834fc5cabd))
|
||||||
|
* load element if set in the hash ([9090dda](https://github.com/USERNAME/REPOSITORY_NAME/commits9090dda6889a4e4eda33b9d634fb22da3aedadd8))
|
||||||
|
* load translations for PDF-export internally ([d103911](https://github.com/USERNAME/REPOSITORY_NAME/commitsd103911d143803c9e0373a673110009a785f94da))
|
||||||
|
* loading oneway arrows on multiple layers; fix nullpointer ([1678427](https://github.com/USERNAME/REPOSITORY_NAME/commits16784270ce45560520d4e9b19d81bd04da7033ee))
|
||||||
|
* long domain names cause horizontal scroll with taghints ([eb47c4d](https://github.com/USERNAME/REPOSITORY_NAME/commitseb47c4d5b9a0379cc87b773c73638965fb247ee8))
|
||||||
|
* make levelselector clickable again, fix [#1416](https://github.com/pietervdvn/MapComplete/issues/1416) ([8b5daef](https://github.com/USERNAME/REPOSITORY_NAME/commits8b5daefc9063c818eeea6e044167787feb31d4b5))
|
||||||
|
* make sure that a 'hidden' tagRendering cannot be accidentally selected ([5585f02](https://github.com/USERNAME/REPOSITORY_NAME/commits5585f02cad0c737f99c16433d7a61f3a5f3743d3))
|
||||||
|
* make sure that the passed-in-location of the map is respected, prevents random jumps in the location input ([5c01f6a](https://github.com/USERNAME/REPOSITORY_NAME/commits5c01f6ada95ab1410310d4f084f593b6f561cc53))
|
||||||
|
* make sure the background is always below the rendered layers ([2769747](https://github.com/USERNAME/REPOSITORY_NAME/commits2769747737964a509897ccce4702a9ea9ebefcd8))
|
||||||
|
* make text a translation ([418e0cd](https://github.com/USERNAME/REPOSITORY_NAME/commits418e0cd149f1af50527e1f1f2c6fbec254779681))
|
||||||
|
* make top and bottom panels click-through ([0db6a89](https://github.com/USERNAME/REPOSITORY_NAME/commits0db6a8977716e33bfa775bd731e994bf9facf0c9))
|
||||||
|
* maproulette endpoints ([bbf6d62](https://github.com/USERNAME/REPOSITORY_NAME/commitsbbf6d62c866950476ee34ff735352d8cc38daa7a))
|
||||||
|
* maproulette import flow ([5f7cc35](https://github.com/USERNAME/REPOSITORY_NAME/commits5f7cc351c9fb3743ab1cba65327611f730440ec5))
|
||||||
|
* maproulette item ([b6b77da](https://github.com/USERNAME/REPOSITORY_NAME/commitsb6b77daef78bdc111530ec1fb17820c4fb042e57))
|
||||||
|
* markers can rotate again ([5e453d5](https://github.com/USERNAME/REPOSITORY_NAME/commits5e453d5cf19fb63ef7516ad11e53aad4e0006bdc))
|
||||||
|
* markers now appear correctly on PNG exports ([e5b3e15](https://github.com/USERNAME/REPOSITORY_NAME/commitse5b3e15c43672933fc3f1f6a59960514961ce377))
|
||||||
|
* MC would crash if a pending change was present; remember preferences in order to reuse the changeset ([f2375f4](https://github.com/USERNAME/REPOSITORY_NAME/commitsf2375f4877316193132f4ae4189ef5b65e7ef710))
|
||||||
|
* metatagging of width theme ([c4ff70c](https://github.com/USERNAME/REPOSITORY_NAME/commitsc4ff70ce656e941574a31120f3971375ecc7ba4c))
|
||||||
|
* minimap takes to much space ([037c593](https://github.com/USERNAME/REPOSITORY_NAME/commits037c593f61b3adfd4ac314aef063e20049ce3cb7))
|
||||||
|
* missing commas in elevator.json ([229e605](https://github.com/USERNAME/REPOSITORY_NAME/commits229e60538b4d9002875a63ad877324941dd4647d))
|
||||||
|
* Move image preview below FloatOver, the popup otherwise hides the image preview ([df1fef2](https://github.com/USERNAME/REPOSITORY_NAME/commitsdf1fef28c02b08a1ba13e4fbd8bc6f15d6c7913c))
|
||||||
|
* move lastClick to bottom anchor ([beea00c](https://github.com/USERNAME/REPOSITORY_NAME/commitsbeea00cbf079ad0c109c78d2828b7359479f0717))
|
||||||
|
* multianswer with a free textfield did not activate ([649ed1f](https://github.com/USERNAME/REPOSITORY_NAME/commits649ed1f53a7948bafda45aab36ed214d1808b51e))
|
||||||
|
* multianswer would not accept last option ([6f5c71e](https://github.com/USERNAME/REPOSITORY_NAME/commits6f5c71ed5a17147d5fc8c9da9f194a61f18fbb30))
|
||||||
|
* no more duplicate link showing up, avoid crash ([7be01d5](https://github.com/USERNAME/REPOSITORY_NAME/commits7be01d5b8f789576b8b74bf07824ed660d9339a1))
|
||||||
|
* normalization of URLs, formatting, stabilize inputHelper ([441c4df](https://github.com/USERNAME/REPOSITORY_NAME/commits441c4df4f6d3e26cf866418e5ddaea90bedd2c6a))
|
||||||
|
* only check browserLanguage if navigator is defined; fixes tests ([a1fa3b4](https://github.com/USERNAME/REPOSITORY_NAME/commitsa1fa3b494259d7cc8f4873af31d5c9a987cef972))
|
||||||
|
* only show 'newly created' if version number is 1 or unset ([1a78ecb](https://github.com/USERNAME/REPOSITORY_NAME/commits1a78ecb85806db67f6e51e39a0882c038589a058))
|
||||||
|
* only show fixmes on high zoom level (performance), add the option to remove a fixme ([2f5091a](https://github.com/USERNAME/REPOSITORY_NAME/commits2f5091a8cb484681d69db0ea6578dd7d26eacef7))
|
||||||
|
* only show website icon if a website is known ([46244b8](https://github.com/USERNAME/REPOSITORY_NAME/commits46244b8345c0005f3b3648a3379149d243cfe897))
|
||||||
|
* open correct menu if set in hash ([7a95334](https://github.com/USERNAME/REPOSITORY_NAME/commits7a953348824f6d601c16a0e632aac8353e0283fb))
|
||||||
|
* open settings again ([894d857](https://github.com/USERNAME/REPOSITORY_NAME/commits894d857cdc35864bbd778925ef84a042d6e04aaa))
|
||||||
|
* opening the popup if defined in the hash ([196d76d](https://github.com/USERNAME/REPOSITORY_NAME/commits196d76d9dc8736667956ad803cf5aed15f3b682e))
|
||||||
|
* ordering of baselayers ([8379a89](https://github.com/USERNAME/REPOSITORY_NAME/commits8379a894d0fc826e33d24d05b3e44852556a60b1))
|
||||||
|
* output tailwind into 'public/css/' instead of 'css/' ([a1f5032](https://github.com/USERNAME/REPOSITORY_NAME/commitsa1f50322321d878d823ac3fc70021683dbb6ab69))
|
||||||
|
* overpass feature source will redownload if the layers to download have changed ([bae4974](https://github.com/USERNAME/REPOSITORY_NAME/commitsbae49744d95e350f7b4c1b031b8e4a178879deea))
|
||||||
|
* overpass feature source will redownload if the layers to download have changed ([7ed5307](https://github.com/USERNAME/REPOSITORY_NAME/commits7ed53076fe206f0e260d329844eb1d8898206b01))
|
||||||
|
* pass along initial coordinates with the location input, prevents flashing of the ocean; fix [#1469](https://github.com/pietervdvn/MapComplete/issues/1469) ([790c276](https://github.com/USERNAME/REPOSITORY_NAME/commits790c2767e2dfbdca65f56ec95bf3cd69a98e4301))
|
||||||
|
* pass properties of snapping feature in newPointInput to render correctly ([c80085d](https://github.com/USERNAME/REPOSITORY_NAME/commitsc80085dfda58c9eb73fda466d8d81731095f1672))
|
||||||
|
* personal theme crashed due to unset defaultIcon ([6075b01](https://github.com/USERNAME/REPOSITORY_NAME/commits6075b016485808352ae84a12d5b872482693411a))
|
||||||
|
* png correctly outputs all markers now ([905f796](https://github.com/USERNAME/REPOSITORY_NAME/commits905f796baa26b8eedc177ce7f58353331e432535))
|
||||||
|
* precise location input picks correct location (and not the previous click) ([6d337e8](https://github.com/USERNAME/REPOSITORY_NAME/commits6d337e877589f49ed1b4b1dc60ae232dd6634342))
|
||||||
|
* preciseInputPicker will show correct icon if snapped or not snapped to a wall ([9870391](https://github.com/USERNAME/REPOSITORY_NAME/commits98703914ca48afefb614e1f19eb15663ab3280b7))
|
||||||
|
* presets will now also show if the layer doesn't have a name and is shown ([3f18ce7](https://github.com/USERNAME/REPOSITORY_NAME/commits3f18ce7fd387a4f60db5863cfa4f759eaf34edff))
|
||||||
|
* pressing enter would ignore input ([95c41d6](https://github.com/USERNAME/REPOSITORY_NAME/commits95c41d672ee7f5556645925d09610f0bf36ee1c0))
|
||||||
|
* probably fix black area outlines ([0bd9e1e](https://github.com/USERNAME/REPOSITORY_NAME/commits0bd9e1e667e659cf1b856e2aece94696089b9a20))
|
||||||
|
* properly add 'self' to connect-src ([441a9a5](https://github.com/USERNAME/REPOSITORY_NAME/commits441a9a5ed9e5b6a37356e0f15967f66799419572))
|
||||||
|
* properly add 'self' to connect-src (take 2) ([c823e74](https://github.com/USERNAME/REPOSITORY_NAME/commitsc823e745a3e0b562ddfdb489541182ed17449336))
|
||||||
|
* properly show hidden themes, drop 'custom theme generator'-button, drop 'professional services' button ([93adfd3](https://github.com/USERNAME/REPOSITORY_NAME/commits93adfd3da592cbf2f177123802f69a7c4fc72637))
|
||||||
|
* questions are shown if the condition is met, fix [#1630](https://github.com/pietervdvn/MapComplete/issues/1630) ([8500276](https://github.com/USERNAME/REPOSITORY_NAME/commits85002766a8d3b8d0d4ad31410437bad72ae7ca03))
|
||||||
|
* questions now appear when reselecting an item ([0c5e88d](https://github.com/USERNAME/REPOSITORY_NAME/commits0c5e88df7b5bdad82bf2e67b45aa817e29ca4fde))
|
||||||
|
* questions of charging stations are now shown separately again ([fe9afb4](https://github.com/USERNAME/REPOSITORY_NAME/commitsfe9afb415ff68c0b8e35fcb41fc68330a41a2b08))
|
||||||
|
* questions of charging stations are now shown separately again ([30af019](https://github.com/USERNAME/REPOSITORY_NAME/commits30af019cdfe8dea845e92645d0ec859e439a2b90))
|
||||||
|
* re-enable generate command ([13a35b9](https://github.com/USERNAME/REPOSITORY_NAME/commits13a35b94202ef775598fc7130b60b8839cef514a))
|
||||||
|
* re-enable reservation question ([cebd428](https://github.com/USERNAME/REPOSITORY_NAME/commitscebd428e9ec58b708637ae34055a5c689e3004cd))
|
||||||
|
* re-enable speed and heading in GPS-cursor ([ff47d75](https://github.com/USERNAME/REPOSITORY_NAME/commitsff47d75d41fc1fd4f576cd483150fe27cb3942d3))
|
||||||
|
* readd missing files ([7d802d4](https://github.com/USERNAME/REPOSITORY_NAME/commits7d802d418bd52bf29b147c245e548a7704e2d45f))
|
||||||
|
* redraw line layers on background change ([6e5fcde](https://github.com/USERNAME/REPOSITORY_NAME/commits6e5fcdef205d4616305d2bca39a1904d60954003))
|
||||||
|
* reinstantiate uploads ([871d511](https://github.com/USERNAME/REPOSITORY_NAME/commits871d511616ae48055095e8c3485db762adc6b140))
|
||||||
|
* remember map rotation setting ([c764839](https://github.com/USERNAME/REPOSITORY_NAME/commitsc764839fdcefff316b9458067e462f282a2fe7d5))
|
||||||
|
* remember previous, externally loaded themes ([b61c0a1](https://github.com/USERNAME/REPOSITORY_NAME/commitsb61c0a11807585a1832ff410be362e74ae2a810b))
|
||||||
|
* remove 'icons.defaults' from favourite layers, cleanup of various small typing errors ([e8569ec](https://github.com/USERNAME/REPOSITORY_NAME/commitse8569ec5404e632ebae0c71b040c1d9a9b891583))
|
||||||
|
* remove all html-attributes from shortDescriptions in the theme overview ([39572f4](https://github.com/USERNAME/REPOSITORY_NAME/commits39572f4767f270a4a5a40d8973ae9824ac3a43d1))
|
||||||
|
* remove empty license files, fix [#1135](https://github.com/pietervdvn/MapComplete/issues/1135) ([2eabfea](https://github.com/USERNAME/REPOSITORY_NAME/commits2eabfea8af22a3810487cdacd68d850f4432e624))
|
||||||
|
* remove ghost bike translations from translation files and resync them, should fix the build ([0487497](https://github.com/USERNAME/REPOSITORY_NAME/commits0487497e17ace04d381d2c9d43b02f8032874e2f))
|
||||||
|
* Remove isOpen from defaults ([11b8c61](https://github.com/USERNAME/REPOSITORY_NAME/commits11b8c619c165f6d66fed03061ad9afa052a7a096))
|
||||||
|
* remove no longer needed translation ([0e893f7](https://github.com/USERNAME/REPOSITORY_NAME/commits0e893f7903d68f37936c9b87883ffdc31b9ff088))
|
||||||
|
* remove no longer needed translations ([3c74a94](https://github.com/USERNAME/REPOSITORY_NAME/commits3c74a94eee676a8ff0fc2b0b85f1bf8d7487d216))
|
||||||
|
* remove trailing ';' for opening hours, as spotted by Midgard ([36b086e](https://github.com/USERNAME/REPOSITORY_NAME/commits36b086e4141e70253e68aec59d099638d46d14af))
|
||||||
|
* remove unneeded translation download, fix PDF-export ([1930f7b](https://github.com/USERNAME/REPOSITORY_NAME/commits1930f7bb53f4d477c2529471b478db77ddcc012b))
|
||||||
|
* remove unneeded URL parameter ([365d573](https://github.com/USERNAME/REPOSITORY_NAME/commits365d573b7c0d36bfa675cc637e6223abe770f3a0))
|
||||||
|
* remove unused property ([99b0135](https://github.com/USERNAME/REPOSITORY_NAME/commits99b0135fa9b44639189a1c9e690cf5829010c6e7))
|
||||||
|
* rendering of 'inline' was not dynamic ([60d825d](https://github.com/USERNAME/REPOSITORY_NAME/commits60d825de3c94afad79351f492c691af3d2109f60))
|
||||||
|
* rendering of indoor room icons ([6235e23](https://github.com/USERNAME/REPOSITORY_NAME/commits6235e231922b64adba86b012422175347a9887c1))
|
||||||
|
* replace all mentions of 'mapcomplete.osm.be' with 'mapcomplete.org' ([7321004](https://github.com/USERNAME/REPOSITORY_NAME/commits7321004c19212b0849394b9d541583e52e4ec5e6))
|
||||||
|
* reset translations ([ad952fc](https://github.com/USERNAME/REPOSITORY_NAME/commitsad952fcaf284b1669cee4657389cf36a52ee334c))
|
||||||
|
* resize svgs ([89186c8](https://github.com/USERNAME/REPOSITORY_NAME/commits89186c8610185e56bf9afa78b2765c45b2a939bd))
|
||||||
|
* restore loading of custom themes ([bcb2ecf](https://github.com/USERNAME/REPOSITORY_NAME/commitsbcb2ecf6ab6c372cd41dd79780b027c79cb4a49e))
|
||||||
|
* reviews need an uncertainty ([bc96288](https://github.com/USERNAME/REPOSITORY_NAME/commitsbc96288d3d75f24fb12620d050f472029c5df135))
|
||||||
|
* rotation of the GPS-marker ([bbc7698](https://github.com/USERNAME/REPOSITORY_NAME/commitsbbc7698b1281ad654c00c54bf58b9de7ba1e71e6))
|
||||||
|
* safari-specific fixes ([059ef2c](https://github.com/USERNAME/REPOSITORY_NAME/commits059ef2c1bc2ea5fb377a0f1e253652c0c243e250))
|
||||||
|
* schemaBasedArray ([a7599f6](https://github.com/USERNAME/REPOSITORY_NAME/commitsa7599f6d7f5a061cb1971ee8170f9f039ea2e2de))
|
||||||
|
* set share capability to 'no' if running from console, fixes tests ([af7bc0f](https://github.com/USERNAME/REPOSITORY_NAME/commitsaf7bc0f7ce686147608256e1c5dd0a9d24388945))
|
||||||
|
* setting the language does not overwrite the user setting anymore ([c6283ac](https://github.com/USERNAME/REPOSITORY_NAME/commitsc6283ac7205f69c1a42e8cf16e5f4f1ab2c239f8))
|
||||||
|
* share button ([84cbd2f](https://github.com/USERNAME/REPOSITORY_NAME/commits84cbd2fbc00d3d9e386a3b485dd4fa61c8000722))
|
||||||
|
* show add new point fullscreen again ([aad31f6](https://github.com/USERNAME/REPOSITORY_NAME/commitsaad31f649e733d108c63297aa6d25bf87ac73c34))
|
||||||
|
* show preferred languages (according to OSM) in usersettings ([0ea103f](https://github.com/USERNAME/REPOSITORY_NAME/commits0ea103f24780ef2c6ba191cbd4891716bb2d86f6))
|
||||||
|
* show tags that will be applied if setting is 'full' ([0b82661](https://github.com/USERNAME/REPOSITORY_NAME/commits0b826612e93c0b120f99b6927c57c13b60c2835f))
|
||||||
|
* show tags that will be deleted with strikethrough in TagHint ([15a481f](https://github.com/USERNAME/REPOSITORY_NAME/commits15a481f864b4afb7b650fd150f0ce7d46c9d1e78))
|
||||||
|
* size of new element picker map ([#1701](https://github.com/pietervdvn/MapComplete/issues/1701)), add debug info about GPS ([9407ed3](https://github.com/USERNAME/REPOSITORY_NAME/commits9407ed35b109660a9b23c2b71fd15f3ecf1dc0d0))
|
||||||
|
* small bug in script ([795d6d2](https://github.com/USERNAME/REPOSITORY_NAME/commits795d6d2e072d13c1d64259ac8ff960d618c2deba))
|
||||||
|
* small CSS fix ([1b8970b](https://github.com/USERNAME/REPOSITORY_NAME/commits1b8970b34aae337edfe5567315cc36319add1ff7))
|
||||||
|
* SPDX-compliance ([6c4b464](https://github.com/USERNAME/REPOSITORY_NAME/commits6c4b464f14ed2851980da34e12df355cb8137ba7))
|
||||||
|
* special loginbutton now actually works ([6a4def6](https://github.com/USERNAME/REPOSITORY_NAME/commits6a4def67ca97b55beb26445a0ddb713149527cc5))
|
||||||
|
* stabilize change injector ([efdff63](https://github.com/USERNAME/REPOSITORY_NAME/commitsefdff6335f5075f74156b5b1258ae69ab058705b))
|
||||||
|
* stabilize opening hours, make delete clickable again ([cc60d2a](https://github.com/USERNAME/REPOSITORY_NAME/commitscc60d2a5fbae3a14d63aa859fa02e2b09e1e48f9))
|
||||||
|
* stabilize rendering of linelayers ([055e5a8](https://github.com/USERNAME/REPOSITORY_NAME/commits055e5a801b60276cdfcf31870fae29e6af30521b))
|
||||||
|
* style issue, types ([5932dc7](https://github.com/USERNAME/REPOSITORY_NAME/commits5932dc7ad4b532c45d6e6bff95f46f6cb26645b2))
|
||||||
|
* style of tabbedGroup-elements needed an 'important' to work in production ([5a2e54b](https://github.com/USERNAME/REPOSITORY_NAME/commits5a2e54b00a86b4ac0f91b69aa55ff3c36939e8ab))
|
||||||
|
* style tweaks to link feature ([bd71645](https://github.com/USERNAME/REPOSITORY_NAME/commitsbd71645c04e819a28c355da5c898293092b51068))
|
||||||
|
* styling issues; refactoring: remove 'SearchAndGo' ([0e81b65](https://github.com/USERNAME/REPOSITORY_NAME/commits0e81b653631a97699ba07ce5d34b61bc4422a5d1))
|
||||||
|
* styling of OH input, fix [#1489](https://github.com/pietervdvn/MapComplete/issues/1489) ([064f875](https://github.com/USERNAME/REPOSITORY_NAME/commits064f87537f450e40b76d936d7793ea9036b2b181))
|
||||||
|
* styling of PH-input in OpeningHoursInput, fix [#1422](https://github.com/pietervdvn/MapComplete/issues/1422) ([a9c25d3](https://github.com/USERNAME/REPOSITORY_NAME/commitsa9c25d378a709e3ac7b4a76919ae10cf405dacec))
|
||||||
|
* substitute name ([408e782](https://github.com/USERNAME/REPOSITORY_NAME/commits408e7826269dc30d97f89e6e1fd097dae69b7923))
|
||||||
|
* substituteKeys works correctly if newline is in the text, fix 'send email to report broken'-button by porting it to svelte ([b4f65bf](https://github.com/USERNAME/REPOSITORY_NAME/commitsb4f65bf2f7ce2a6993906076353acc11a1d64d94))
|
||||||
|
* subtleLink should not open in a new tab ([61c417c](https://github.com/USERNAME/REPOSITORY_NAME/commits61c417c546e828dbed2356c35eebfe4cf2ef403d))
|
||||||
|
* Support contact:email and contact:phone in icons ([7bcefe5](https://github.com/USERNAME/REPOSITORY_NAME/commits7bcefe527ce080b3f7b7c48fdd1a828289b126c3))
|
||||||
|
* svg image generation script ([f9b1e9b](https://github.com/USERNAME/REPOSITORY_NAME/commitsf9b1e9b2de8f4aa657272d714385c1c7fbfdb3b3))
|
||||||
|
* temporarily only warn for incomplete translations ([adb5d89](https://github.com/USERNAME/REPOSITORY_NAME/commitsadb5d892fb39cdf63ea65d95ef5079f0efed6324))
|
||||||
|
* tests ([238de89](https://github.com/USERNAME/REPOSITORY_NAME/commits238de89ad54fd0c8c0d4bf75f49282d7921f21a2))
|
||||||
|
* tests ([841be16](https://github.com/USERNAME/REPOSITORY_NAME/commits841be16dffd8219713a1bc00b9a8409195a8f82d))
|
||||||
|
* tests ([1d54356](https://github.com/USERNAME/REPOSITORY_NAME/commits1d543563d702f6af424e1df041191632126ed805))
|
||||||
|
* tests ([2a73c43](https://github.com/USERNAME/REPOSITORY_NAME/commits2a73c43a5fc652f7d91c8d89cf47d0ce8853ee62))
|
||||||
|
* the search bar on the theme index was not clickable on wide screens as the 'centermessage' hovered over it invisibly ([af7672a](https://github.com/USERNAME/REPOSITORY_NAME/commitsaf7672a0e00de4e3d75a85678b4528093515fb7e))
|
||||||
|
* theme compilation ([86d0de3](https://github.com/USERNAME/REPOSITORY_NAME/commits86d0de380644c92fe90f4dd87aa4399074fdc42e))
|
||||||
|
* **themes:** remove 'unkown' mapping from hydrants, the unkown case is handled by MapComplete ([4850e50](https://github.com/USERNAME/REPOSITORY_NAME/commits4850e5094a49a16d3975795fd1f25a81f2e13a5a))
|
||||||
|
* turn favourites black again, sync them globally ([14594b2](https://github.com/USERNAME/REPOSITORY_NAME/commits14594b286dd2278bc64ed27f0305b76596d7e190))
|
||||||
|
* tweaking addNewPoint-flow ([d0e0abd](https://github.com/USERNAME/REPOSITORY_NAME/commitsd0e0abdece560799a9770b74d0992c42ebe89ed6))
|
||||||
|
* typo ([929093d](https://github.com/USERNAME/REPOSITORY_NAME/commits929093d36f13ab1861d533f4d93152a7ddd1e6dc))
|
||||||
|
* typo ([2671d01](https://github.com/USERNAME/REPOSITORY_NAME/commits2671d0158983c7befb9f5c8d3e91544a50408c6b))
|
||||||
|
* typo ([752de10](https://github.com/USERNAME/REPOSITORY_NAME/commits752de107ab6a50f8e513b0c7307b44dc6094d974))
|
||||||
|
* typo ([8531571](https://github.com/USERNAME/REPOSITORY_NAME/commits8531571c7be653339d752f953a8725d94eec692c))
|
||||||
|
* typo ([de99f56](https://github.com/USERNAME/REPOSITORY_NAME/commitsde99f56ca8fe34e361a7c6345d147f8295293f57))
|
||||||
|
* typo ([3a25106](https://github.com/USERNAME/REPOSITORY_NAME/commits3a25106a5ab7bd958cfe731d8e1e959b5b07b23e))
|
||||||
|
* typo in charging_station.protojson ([21d01a4](https://github.com/USERNAME/REPOSITORY_NAME/commits21d01a46f9164a872145c03fe845233c6cd47f8b))
|
||||||
|
* typo in elevator.json ([374a4eb](https://github.com/USERNAME/REPOSITORY_NAME/commits374a4eb22211ecfbe8a04569d89b8236f109b8ed))
|
||||||
|
* typo in filter ([366577f](https://github.com/USERNAME/REPOSITORY_NAME/commits366577f70b40765b3e10ccae222193ca07cae4bb))
|
||||||
|
* typo in tag ([a903112](https://github.com/USERNAME/REPOSITORY_NAME/commitsa9031129d3dddfdd0ab1d2d83d371b872a0d5180))
|
||||||
|
* **typo:** s/bick_wal/brick_wall/ ([753efef](https://github.com/USERNAME/REPOSITORY_NAME/commits753efef38f1f1a4f731c0c66408c7adddb26a967))
|
||||||
|
* undo accidental changes, fix saving preferences ([ff3a7f8](https://github.com/USERNAME/REPOSITORY_NAME/commitsff3a7f8f4372d46b0aba61aa12115da4207f2331))
|
||||||
|
* units which used a 'string'-validator might not detect the actual denomination. They have now been forbidden and fixed ([7b497f9](https://github.com/USERNAME/REPOSITORY_NAME/commits7b497f991d788c991457f1167d472a77f2789cdc))
|
||||||
|
* unselect layer, prevents that 'lastClick'-popup opens on map click ([63ffa11](https://github.com/USERNAME/REPOSITORY_NAME/commits63ffa11238766962cab6b1c8cedcd0153504d45e))
|
||||||
|
* update and simplification of sharescreen, rename some feature switches, remove some no longer relevant feature switches ([96d0367](https://github.com/USERNAME/REPOSITORY_NAME/commits96d036781f55987732629355be118373c363830d))
|
||||||
|
* upload flow deals better with point reuse: it actually opens the feature now ([c14cbc9](https://github.com/USERNAME/REPOSITORY_NAME/commitsc14cbc9fe95bf1d2432ea7290cae0d0f7a9b6ada))
|
||||||
|
* uploads were broken ([efd6b30](https://github.com/USERNAME/REPOSITORY_NAME/commitsefd6b30e1b41024ee4b7c0f6cf69a49f87f5da69))
|
||||||
|
* URL-parameter language disables the language picker, fix [#1506](https://github.com/pietervdvn/MapComplete/issues/1506) ([3ca8ba1](https://github.com/USERNAME/REPOSITORY_NAME/commits3ca8ba18fd6a1569214f5d6298eca291cb8ceefc))
|
||||||
|
* URL-parameter language disables the language picker, fix [#1506](https://github.com/pietervdvn/MapComplete/issues/1506) ([2f5c89f](https://github.com/USERNAME/REPOSITORY_NAME/commits2f5c89f8c5a7aa7adbe83d1b9cf98e198f9f1aab))
|
||||||
|
* use api.openstreetmap.org on many places, fix [#1573](https://github.com/pietervdvn/MapComplete/issues/1573) ([8fccf78](https://github.com/USERNAME/REPOSITORY_NAME/commits8fccf784786074e22a4d437dc8a38c58bf54c375))
|
||||||
|
* use correct backend address (including www.) ([c320239](https://github.com/USERNAME/REPOSITORY_NAME/commitsc320239610f15083d1d050f17e337780621f7dc3))
|
||||||
|
* use correct branch to deploy ([9c0dac2](https://github.com/USERNAME/REPOSITORY_NAME/commits9c0dac28ad0604026936cc68c5238927978b250a))
|
||||||
|
* use correct relocation icon again ([cdb1bb2](https://github.com/USERNAME/REPOSITORY_NAME/commitscdb1bb23b8e5df8bd1f2e0732ff14f3bd55935f5))
|
||||||
|
* use correct snapping ([ec2e0e1](https://github.com/USERNAME/REPOSITORY_NAME/commitsec2e0e1de168f9f4551f86ff73b070a6e4ccdd77))
|
||||||
|
* use https for extractGraph endpoint ([f89123d](https://github.com/USERNAME/REPOSITORY_NAME/commitsf89123d318ebb24553b842884e0aad3b9adf6570))
|
||||||
|
* use proper circle for bench and artwork ([e2a56f5](https://github.com/USERNAME/REPOSITORY_NAME/commitse2a56f5e5cc469c95974625f561a4a5229b5cb9a))
|
||||||
|
* use proper selected element ([dbff953](https://github.com/USERNAME/REPOSITORY_NAME/commitsdbff95309642178dcccb4a0a365a263c722c5a96))
|
||||||
|
* use theme.html?layout= instead of layout.html if a local deploy is detected ([db67600](https://github.com/USERNAME/REPOSITORY_NAME/commitsdb6760015f69239dc51cc47c866635927cd9dadf))
|
||||||
|
* use translated value for community index tab ([a3a7c53](https://github.com/USERNAME/REPOSITORY_NAME/commitsa3a7c536fbce04698a05847da429d1bacc851aad))
|
||||||
|
* use translated value for community index tab ([22ee806](https://github.com/USERNAME/REPOSITORY_NAME/commits22ee806090a8679ea2951d84af47e4de8314925c))
|
||||||
|
* use www.openstreetmap.org again, it doesnt work ([580b58e](https://github.com/USERNAME/REPOSITORY_NAME/commits580b58e86a974432b068b073a047c22864621126))
|
||||||
|
|
||||||
|
|
||||||
|
### Theme improvements
|
||||||
|
|
||||||
|
* a few improvements to velopark ([e7a5712](https://github.com/USERNAME/REPOSITORY_NAME/commitse7a57125d797fdf3c31c66c1e0c54dfc5dc5a304))
|
||||||
|
* active 'browse and link streetview' on all themes ([eb2a582](https://github.com/USERNAME/REPOSITORY_NAME/commitseb2a582d4910edda5e8dd76d229c0637bc5ac4a5))
|
||||||
|
* Add 'access=permissive' to charging stations, fixes [#1255](https://github.com/pietervdvn/MapComplete/issues/1255) ([cc70e09](https://github.com/USERNAME/REPOSITORY_NAME/commitscc70e09e11f55c62276fe9fcc5cf4e9033ccc6f5))
|
||||||
|
* add 'allowMove' everywhere, make 'allowMove' obligated, see [#2121](https://github.com/pietervdvn/MapComplete/issues/2121) ([29d52e0](https://github.com/USERNAME/REPOSITORY_NAME/commits29d52e0fc69f16477fbfd6f5c08900890626f0be))
|
||||||
|
* add 'artwork' questions to drinking water fountains ([def640f](https://github.com/USERNAME/REPOSITORY_NAME/commitsdef640fb1c97c581e4688c8c0a50f4e295d9458b))
|
||||||
|
* add 'binding'-service question to copyshops ([7b1ca43](https://github.com/USERNAME/REPOSITORY_NAME/commits7b1ca43266f596c9b9b40a3a86c0f5cf6d213a3e))
|
||||||
|
* add 'fine-gravel' as option to sport-pitches ([679e371](https://github.com/USERNAME/REPOSITORY_NAME/commits679e371bd470976a41327494004054548e120401))
|
||||||
|
* add 'hacklab' as option to hackerspaces ([665cd3b](https://github.com/USERNAME/REPOSITORY_NAME/commits665cd3b0dd3bd2ad91c601554417cfec0eec54a2))
|
||||||
|
* add 'hoops' question to basketball pitches ([4df9632](https://github.com/USERNAME/REPOSITORY_NAME/commits4df9632d7c7093511b6e3b2349ee5d2fd99cb681))
|
||||||
|
* add 'link' as builtin, available Icon ([7872f22](https://github.com/USERNAME/REPOSITORY_NAME/commits7872f221512797ee82ea1e92455326baaa9874ab))
|
||||||
|
* add 'lock' and 'key' icon to toilets, fix [#2094](https://github.com/pietervdvn/MapComplete/issues/2094) ([577b596](https://github.com/USERNAME/REPOSITORY_NAME/commits577b596e7a8cdc2ea4cbd97c401422ee0ad06652))
|
||||||
|
* Add 'open_now' filter to bike-shop ([aa6902a](https://github.com/USERNAME/REPOSITORY_NAME/commitsaa6902a25c4b27ef9424d0cdfb68a83f44ec7405))
|
||||||
|
* add 'pedagogy', fix [#1839](https://github.com/pietervdvn/MapComplete/issues/1839) ([4644b6a](https://github.com/USERNAME/REPOSITORY_NAME/commits4644b6ae550fa53c042978317484f9a99eafe8c7))
|
||||||
|
* add 'skateboard' as sport pitch option ([f20219c](https://github.com/USERNAME/REPOSITORY_NAME/commitsf20219cf37711b42e8bf1d4a4a1c0379d7d8df0e))
|
||||||
|
* add 'website'-button which shows up by default if a website is known ([7c0d339](https://github.com/USERNAME/REPOSITORY_NAME/commits7c0d339976fb26a9fc9ab74a540c7d5b7d640f80))
|
||||||
|
* add ALPR-cameras to surveillance theme ([d1e91ee](https://github.com/USERNAME/REPOSITORY_NAME/commitsd1e91ee2f98936871941e4b7cd035ee4f1e35bbd))
|
||||||
|
* add ALPR-cameras to surveillance theme ([97236c8](https://github.com/USERNAME/REPOSITORY_NAME/commits97236c80a99686a1dc0c296bb4a730bc595884a5))
|
||||||
|
* add animal types to animal_shelter, include animal_shelter in pets, generate licenses, fix cycle_highways.json ([3968a1e](https://github.com/USERNAME/REPOSITORY_NAME/commits3968a1e841cef10e5fac08b7a2c8e6b685a4f07c))
|
||||||
|
* add animal_shelter, created by the studio ([c4d4a57](https://github.com/USERNAME/REPOSITORY_NAME/commitsc4d4a57a0804776c2eabb7cd7c11e269bac101d8))
|
||||||
|
* add atm-option to postoffice, add postoffices to ATM theme, fix [#1551](https://github.com/pietervdvn/MapComplete/issues/1551) ([c4a9fa8](https://github.com/USERNAME/REPOSITORY_NAME/commitsc4a9fa81f23ec8a5dcc685b6c42b9e1208337818))
|
||||||
|
* add baby icon to changing table question ([1b5a0a2](https://github.com/USERNAME/REPOSITORY_NAME/commits1b5a0a2a853237e9d51298f5e1b17c69afaafa71))
|
||||||
|
* Add badminton fields to filters ([b60a3aa](https://github.com/USERNAME/REPOSITORY_NAME/commitsb60a3aa5684d58e9fec146b06fe2d2993eafd72e))
|
||||||
|
* add before text on correct location ([6a2e372](https://github.com/USERNAME/REPOSITORY_NAME/commits6a2e3720622e404089c243dc1aa7e7ab282ba2f2))
|
||||||
|
* add benches on playground theme ([54a9edc](https://github.com/USERNAME/REPOSITORY_NAME/commits54a9edc687667372d0097fb51efb7b904005c9de))
|
||||||
|
* add bicycle self-repair workshops to the map (WIP) ([c11d7af](https://github.com/USERNAME/REPOSITORY_NAME/commitsc11d7af17531cf381ce03e37765c2e0f7efd1745))
|
||||||
|
* add camp site ([cfa1c28](https://github.com/USERNAME/REPOSITORY_NAME/commitscfa1c28789d2056e6b8ad7483360a007c639d73c))
|
||||||
|
* add cargo bike option to bicycle rental, fix [#2016](https://github.com/pietervdvn/MapComplete/issues/2016) ([b98aaff](https://github.com/USERNAME/REPOSITORY_NAME/commitsb98aaff8101255138c10704d2a02f9226b0fa7ec))
|
||||||
|
* add charge to bike_parking ([ed96859](https://github.com/USERNAME/REPOSITORY_NAME/commitsed96859233a921cbfc61046106b9202d40bbde6c))
|
||||||
|
* add compile time check for 'sameAs'-filters that the referenced layer actually exists ([e188b96](https://github.com/USERNAME/REPOSITORY_NAME/commitse188b9656122dd3f0a4cda55352bf81dad6dbc65))
|
||||||
|
* add condition that hoops are only asked on basketball courts, fix [#1577](https://github.com/pietervdvn/MapComplete/issues/1577) ([fb6f7ee](https://github.com/USERNAME/REPOSITORY_NAME/commitsfb6f7ee191554816581c955cfdfbb1a932981c77))
|
||||||
|
* add conveying as condition for stairs ([f95f631](https://github.com/USERNAME/REPOSITORY_NAME/commitsf95f631045e2a83424a6ac7ef3d607fcba18cc6f))
|
||||||
|
* add correct title for cafe, nightclub and bar if no name is present, fix [#1704](https://github.com/pietervdvn/MapComplete/issues/1704) ([0129845](https://github.com/USERNAME/REPOSITORY_NAME/commits0129845d22f028b213af59e57014ce8962b76327))
|
||||||
|
* add currency type which does some reformatting ([d40474d](https://github.com/USERNAME/REPOSITORY_NAME/commitsd40474d47e0b5ded963df2c4e76c6911de63dbca))
|
||||||
|
* add currently open badge ([d9d330e](https://github.com/USERNAME/REPOSITORY_NAME/commitsd9d330e91221fac741120c7e2cb0b394d0871406))
|
||||||
|
* add delete to banks ([68cada0](https://github.com/USERNAME/REPOSITORY_NAME/commits68cada0a0d8f7f57b2ed43eb459680764b2b3070))
|
||||||
|
* add dog icon into title-icons, add dog filter, see [#212](https://github.com/pietervdvn/MapComplete/issues/212) ([7e0120d](https://github.com/USERNAME/REPOSITORY_NAME/commits7e0120d0e8948510db1eb0c17090900127dc8ed8))
|
||||||
|
* add extra check so that in a mapping cannot override the , fix two such instances ([56ea116](https://github.com/USERNAME/REPOSITORY_NAME/commits56ea1163bb7c272cec717076da452ba069e82b3c))
|
||||||
|
* add extra questions to 'map' layer based on custom theme ([10e0e27](https://github.com/USERNAME/REPOSITORY_NAME/commits10e0e277787f95e4da8b075edd308300dd6b0256))
|
||||||
|
* add filter for vegetable oil to fritures theme ([721a930](https://github.com/USERNAME/REPOSITORY_NAME/commits721a930d76fcd4fedada4044f1c6b2c6802cd022))
|
||||||
|
* add filters for 'wifi' and 'electricity' ([af2c6f4](https://github.com/USERNAME/REPOSITORY_NAME/commitsaf2c6f47829dd91e5fa0ac4dad2f23e18ebf1d3f))
|
||||||
|
* add fine_gravel as option for playground surface ([d8be0ac](https://github.com/USERNAME/REPOSITORY_NAME/commitsd8be0acdfef8a0a7f349d152abadf3e394c0145f))
|
||||||
|
* add first version of ski theme ([8f25006](https://github.com/USERNAME/REPOSITORY_NAME/commits8f250069988ea8e1b7f25e29db4e287200d354b8))
|
||||||
|
* add guidepost layer ([da39dde](https://github.com/USERNAME/REPOSITORY_NAME/commitsda39dde7b699e576e79eb5781933146fa9747ace))
|
||||||
|
* add guidepost layer ([a06e513](https://github.com/USERNAME/REPOSITORY_NAME/commitsa06e513c4f5a662e6d09908440f6b3394addf483))
|
||||||
|
* add guidepost theme ([ad239b2](https://github.com/USERNAME/REPOSITORY_NAME/commitsad239b230fd57233f377266dd68b15011136bbaa))
|
||||||
|
* add guideposts to climbing theme ([a96a214](https://github.com/USERNAME/REPOSITORY_NAME/commitsa96a214c03b3438f9ccf96f7c37a2e842ec224e1))
|
||||||
|
* add hostel, cleanup of hotel ([d167fe7](https://github.com/USERNAME/REPOSITORY_NAME/commitsd167fe77232b502ccef4ee051c8d73f948100dd0))
|
||||||
|
* add hostel, cleanup of hotel ([8e9ae05](https://github.com/USERNAME/REPOSITORY_NAME/commits8e9ae0529b95b8736ad6a2cabf9927a3a27e4c0c))
|
||||||
|
* add ice cream parlors ([69a7c9e](https://github.com/USERNAME/REPOSITORY_NAME/commits69a7c9efa3eb29c32f0256b1a956e9846cdf5260))
|
||||||
|
* add icons to access question in toilets ([2ba461d](https://github.com/USERNAME/REPOSITORY_NAME/commits2ba461d9578b515b23ff25a8a99d9a2b03779653))
|
||||||
|
* add icons to question ([246b163](https://github.com/USERNAME/REPOSITORY_NAME/commits246b16317d93b8e2effe9b41f7ed8c362a61cff6))
|
||||||
|
* add icons, add 'auto'-title-icons ([2c662c9](https://github.com/USERNAME/REPOSITORY_NAME/commits2c662c957860144a927260504ca30795f9249238))
|
||||||
|
* Add internet questions to hackerspace, fix [#1856](https://github.com/pietervdvn/MapComplete/issues/1856) ([c870544](https://github.com/USERNAME/REPOSITORY_NAME/commitsc870544d857a1c0f3f13e04da78db1a00f5e5342))
|
||||||
|
* add keycutting service tags ([d8ce6f0](https://github.com/USERNAME/REPOSITORY_NAME/commitsd8ce6f0da5887724778c03ea554add5fd5be16cd))
|
||||||
|
* add label support to questions.json; add opening hours for hospitals ([41fdeb9](https://github.com/USERNAME/REPOSITORY_NAME/commits41fdeb9cb5c664ca604da1f89f2724c0de3b1304))
|
||||||
|
* add maxstay for bicycle parkings ([a71ed5d](https://github.com/USERNAME/REPOSITORY_NAME/commitsa71ed5d53e0b238713cdd8741c7b05e9a9568c55))
|
||||||
|
* add memorial layer, use 'subject' instead of 'name' for ghost bikes ([a57dbe0](https://github.com/USERNAME/REPOSITORY_NAME/commitsa57dbe09d60734785420c4502699fcb6d89c6033))
|
||||||
|
* add memorials to artwork on high zoom ([29c5b88](https://github.com/USERNAME/REPOSITORY_NAME/commits29c5b884c404c14258dd116921990923c9a89181))
|
||||||
|
* add metal as material option ([6420b90](https://github.com/USERNAME/REPOSITORY_NAME/commits6420b906e055f5572d093e18febdbe5dba325bce))
|
||||||
|
* add minzoom to cafe_pub ([e2d3a71](https://github.com/USERNAME/REPOSITORY_NAME/commitse2d3a71c5b3a15b5a21db112baaf5a13dec55a3c))
|
||||||
|
* add minzoom to ski_piste and aerialway, fix [#1876](https://github.com/pietervdvn/MapComplete/issues/1876) ([d7982bf](https://github.com/USERNAME/REPOSITORY_NAME/commitsd7982bfd3e92a863e33e9154b2c9c4044cdb4951))
|
||||||
|
* add missing assets ([bc826be](https://github.com/USERNAME/REPOSITORY_NAME/commitsbc826bebed2c0f073da3163994be818d1c41c6f5))
|
||||||
|
* Add more memorial types, add freeform option, fix [#1824](https://github.com/pietervdvn/MapComplete/issues/1824) ([b0d0436](https://github.com/USERNAME/REPOSITORY_NAME/commitsb0d0436ebe79a44c1bfc6880ecbef66f85e159be))
|
||||||
|
* add more options for support in advertisement, add presets ([c26225c](https://github.com/USERNAME/REPOSITORY_NAME/commitsc26225ccf11987f8a2cbdf45820a2310428cf1c0))
|
||||||
|
* add more questions about drinking water ([9fabab3](https://github.com/USERNAME/REPOSITORY_NAME/commits9fabab3588a7cdc3d04bcbae19b6868694bbc95f))
|
||||||
|
* add mountain rescue stations to the ski map ([04509bc](https://github.com/USERNAME/REPOSITORY_NAME/commits04509bc3e7783f55e593679ddfba2263ecf7f3de))
|
||||||
|
* add name and title to assembly_point and disaster_response layers ([f087012](https://github.com/USERNAME/REPOSITORY_NAME/commitsf08701211632b8f8f35597d908160f8460934e04))
|
||||||
|
* add open love map, see https://github.com/thomersch/OpenLoveMap/issues/21 ([d6a55a5](https://github.com/USERNAME/REPOSITORY_NAME/commitsd6a55a5ee9ef03c0a813b0d95dffa42cb0b4955d))
|
||||||
|
* add operator question to bicycle parking ([ea00c71](https://github.com/USERNAME/REPOSITORY_NAME/commitsea00c717de78c06ded81fae56be1a05b8e50ae37))
|
||||||
|
* add OSM-carto again, fix [#1664](https://github.com/pietervdvn/MapComplete/issues/1664) ([376a683](https://github.com/USERNAME/REPOSITORY_NAME/commits376a683cce13921e644364c8342362f3a21b3ab3))
|
||||||
|
* add paid as option, fix [#2119](https://github.com/pietervdvn/MapComplete/issues/2119) ([a4018d8](https://github.com/USERNAME/REPOSITORY_NAME/commitsa4018d88b0f187b907c68a49dcfb496c0259bb91))
|
||||||
|
* add payment options and internet to climbing theme ([2337033](https://github.com/USERNAME/REPOSITORY_NAME/commits23370336e81fa865a62507bb6f4de5030ad48bb5))
|
||||||
|
* add payment options and internet to climbing theme ([1abcc76](https://github.com/USERNAME/REPOSITORY_NAME/commits1abcc766f98f27298eb82e70ad7c09520adb8377))
|
||||||
|
* add possibility to add an icon to 'render' (just like with mappings), add contact:mastodon support as general question, add mastodon question to hackerspaces ([03aafbe](https://github.com/USERNAME/REPOSITORY_NAME/commits03aafbe99c0d9f4fa5768d18e7bde093529ce93f))
|
||||||
|
* add possibility to enable terrain, some fixes to overlaymap and pitch control ([e3dec8a](https://github.com/USERNAME/REPOSITORY_NAME/commitse3dec8aafada699be3cddfc86aeb63938036e5c5))
|
||||||
|
* add proper 'image along way' possibility ([584fb3c](https://github.com/USERNAME/REPOSITORY_NAME/commits584fb3cb57e77ea4382fda152d8604ef8293f9b1))
|
||||||
|
* add question wether climbing ropes can be hired ([6425ad6](https://github.com/USERNAME/REPOSITORY_NAME/commits6425ad67e6a053e1b6cbbb038e0c544c0f07f10b))
|
||||||
|
* Add rubber;tartan surface to playgrounds, add checkdate to playgrounds, add tartan to sport pitches ([7859e7d](https://github.com/USERNAME/REPOSITORY_NAME/commits7859e7d06990666c1c40756795f993949abef434))
|
||||||
|
* add shoe repair services to the climbing map, add question if a shoemaker also repairs climbing shoes, add craft=shoemaker to shops theme ([3df5727](https://github.com/USERNAME/REPOSITORY_NAME/commits3df5727f40a29d190394c71cf99896261f78474d))
|
||||||
|
* add short description to velopark ([50e3c54](https://github.com/USERNAME/REPOSITORY_NAME/commits50e3c5483461cd085d3207fbd96f5b7fdfaebe57))
|
||||||
|
* add smoking to food-layer, fix [#1874](https://github.com/pietervdvn/MapComplete/issues/1874) ([f5a94c7](https://github.com/USERNAME/REPOSITORY_NAME/commitsf5a94c7b5f24c1846681f75f8f79bc1d870574c0))
|
||||||
|
* add some icons ([48df237](https://github.com/USERNAME/REPOSITORY_NAME/commits48df2379bf013006aad7e7bd68977e7a55a670d3))
|
||||||
|
* add speed_camera to surveillance theme, see [#1913](https://github.com/pietervdvn/MapComplete/issues/1913) ([9716bc5](https://github.com/USERNAME/REPOSITORY_NAME/commits9716bc5425967aa81b4885bff4063d8c0eebfd18))
|
||||||
|
* add Stamen Watercolor again, see [#1652](https://github.com/pietervdvn/MapComplete/issues/1652) ([d997c90](https://github.com/USERNAME/REPOSITORY_NAME/commitsd997c90352a0d70f2cd33108af4de16f58444868))
|
||||||
|
* add statistics on used version ([1a7acc8](https://github.com/USERNAME/REPOSITORY_NAME/commits1a7acc80c1933894aa71bdd9cdfc6bd6985f5a40))
|
||||||
|
* add sugar_free, gluten_free and lactose-free to shops- and food-layers ([b06784e](https://github.com/USERNAME/REPOSITORY_NAME/commitsb06784e7a06aaeb40a375210bc95538a73db9aed))
|
||||||
|
* add support for operator:email, mostly for velopark ([1c45f09](https://github.com/USERNAME/REPOSITORY_NAME/commits1c45f0963219f3aa743b2ddf9840e2d152b0fae5))
|
||||||
|
* add toilet questions into indoor theme ([8f93b0d](https://github.com/USERNAME/REPOSITORY_NAME/commits8f93b0d398aa16caa6e9167d96b02c7fc45182a4))
|
||||||
|
* add validation check if a mapping does not erase another mapping completely ([556f6d0](https://github.com/USERNAME/REPOSITORY_NAME/commits556f6d0b93aa7774b703e80590d2df1601d293c4))
|
||||||
|
* add validation for duplicate presets, fix [#1582](https://github.com/pietervdvn/MapComplete/issues/1582) ([2e8a331](https://github.com/USERNAME/REPOSITORY_NAME/commits2e8a3311e76c9065338ffce1388658269a05e261))
|
||||||
|
* add various services to hackerspaces and makerspaces, add icons, some fixes to make this work with expandRewrite ([8ceda1c](https://github.com/USERNAME/REPOSITORY_NAME/commits8ceda1cc5f7e549ccecc65b6469a7195de1022cc))
|
||||||
|
* add velopark import functionality ([4c5ebf0](https://github.com/USERNAME/REPOSITORY_NAME/commits4c5ebf05f5d818abd622bf9d8c8a96926e36ddd6))
|
||||||
|
* add velopark theme ([1c1cea7](https://github.com/USERNAME/REPOSITORY_NAME/commits1c1cea7f033ea19c74a6efb958a69a3a729bad3c))
|
||||||
|
* add warning if a tagRendering can be replaced by a direct value ([79e40d0](https://github.com/USERNAME/REPOSITORY_NAME/commits79e40d0fee2e40b32babc218a374095f6ca520a5))
|
||||||
|
* add wikipedia page for "subject:wikidata" on ghost bikes, specifically for the ghost bike of #Natenom ([d74cb00](https://github.com/USERNAME/REPOSITORY_NAME/commitsd74cb00df4fc55ca00082326da138b580fa39cc7))
|
||||||
|
* add year to units ([c8eef2c](https://github.com/USERNAME/REPOSITORY_NAME/commitsc8eef2c8f6866ded26276250d422bd4a97e5b08c))
|
||||||
|
* **advertising:** add (animated!) flag and screen icons ([090130d](https://github.com/USERNAME/REPOSITORY_NAME/commits090130d596bb5ab7d337c7c96a55b38ef6181231))
|
||||||
|
* **advertising:** boards are never animated ([b92e9b8](https://github.com/USERNAME/REPOSITORY_NAME/commitsb92e9b815da3e1b15c9859f6d4726bac09307b7b))
|
||||||
|
* **advertising:** Fix typos ([9e02c89](https://github.com/USERNAME/REPOSITORY_NAME/commits9e02c89fd5da5c7ad4623ed205ef610e4462b2a7))
|
||||||
|
* **advertising:** further refinements ([8127027](https://github.com/USERNAME/REPOSITORY_NAME/commits81270272518012cf2023be2888d2faa444ee012f))
|
||||||
|
* **advertising:** further refinements ([59eabc5](https://github.com/USERNAME/REPOSITORY_NAME/commits59eabc5daaa675880e1b684c3d8b4d3f0c1139ac))
|
||||||
|
* **advertising:** last icon ([3e72ba2](https://github.com/USERNAME/REPOSITORY_NAME/commits3e72ba2b464c819a09956fa22bb321ed68fe34a3))
|
||||||
|
* **advertising:** more icons, reordering of the questions ([7fc0770](https://github.com/USERNAME/REPOSITORY_NAME/commits7fc0770488ba99ea2d7aab658933d6e22c62cb3e))
|
||||||
|
* align iconbadge, fix [#1893](https://github.com/pietervdvn/MapComplete/issues/1893) ([ba098fc](https://github.com/USERNAME/REPOSITORY_NAME/commitsba098fc29ac4ea46b0ff19a918282b4f81fe8f10))
|
||||||
|
* allow multiple internet access types ([786b850](https://github.com/USERNAME/REPOSITORY_NAME/commits786b850dbeff9a92f761e65cd01a0e948140f37d))
|
||||||
|
* allow to add multiple changing table locations, see [#1756](https://github.com/pietervdvn/MapComplete/issues/1756) ([c62f7cc](https://github.com/USERNAME/REPOSITORY_NAME/commitsc62f7cce01da15ef3f123b95e08056ca5019b7c9))
|
||||||
|
* allow to add pictures to a 'shelter' ([39c079d](https://github.com/USERNAME/REPOSITORY_NAME/commits39c079db45aaadf98bf651d66d6bd88dbbe04bb2))
|
||||||
|
* Allow to delete tourism accomodation ([60eeab9](https://github.com/USERNAME/REPOSITORY_NAME/commits60eeab9aa79ab1a5fc65b7f5e6efb2ebb0b6e55e))
|
||||||
|
* allow to have a non-number type together with a unit ([4ccfe3e](https://github.com/USERNAME/REPOSITORY_NAME/commits4ccfe3efe446b407be1ca53d4ad2c3ee6fdde0b4))
|
||||||
|
* allow to move a shelter ([565dee8](https://github.com/USERNAME/REPOSITORY_NAME/commits565dee8854f605ea40570c0c82d225935e11dba0))
|
||||||
|
* allow to move and delete pharmacies ([5e95bd9](https://github.com/USERNAME/REPOSITORY_NAME/commits5e95bd99a2dcf424acbcad85aa96a3a36bd612a8))
|
||||||
|
* allow to move hydrants ([432f244](https://github.com/USERNAME/REPOSITORY_NAME/commits432f24456d75e131425f0f1fe0df15c448f593ef))
|
||||||
|
* also ask about menstrual products for toilet_at_amenity ([ae7cc95](https://github.com/USERNAME/REPOSITORY_NAME/commitsae7cc95727bc33c6d67a2ef24d2a2e0c2e3c3214))
|
||||||
|
* also show 'operator:website' and 'contact:website' as title icon if they are available ([8526f4e](https://github.com/USERNAME/REPOSITORY_NAME/commits8526f4e94140132c8abe880b93cbc45780f9686b))
|
||||||
|
* automatically derive source from presets if no source is given ([0689758](https://github.com/USERNAME/REPOSITORY_NAME/commits06897588be3e56570b973c8db08fce1e13b29c7b))
|
||||||
|
* automatically derive source from presets if no source is given ([8e18864](https://github.com/USERNAME/REPOSITORY_NAME/commits8e18864daa9d19c2d9ccc2eb6a8ee408e7038d5e))
|
||||||
|
* bench.json: decrease minzoom ([5b33d88](https://github.com/USERNAME/REPOSITORY_NAME/commits5b33d88ffbff285849d7bf5896df8e8e2e547cef))
|
||||||
|
* better support billboard on walls ([8816ad0](https://github.com/USERNAME/REPOSITORY_NAME/commits8816ad03ecaedfe248fff1b7b101a266a9a6f444))
|
||||||
|
* better support billboard on walls ([0a1c90b](https://github.com/USERNAME/REPOSITORY_NAME/commits0a1c90be9e1515b2f708e0f672b0732c7356101b))
|
||||||
|
* bicycle library: allow move, fix [#1768](https://github.com/pietervdvn/MapComplete/issues/1768) ([7ac84dd](https://github.com/USERNAME/REPOSITORY_NAME/commits7ac84dd675a68f47b6af0465e337561aa0dc9586))
|
||||||
|
* bicycle parking: add lockers as options, add operator:website (velopark features) ([22721cd](https://github.com/USERNAME/REPOSITORY_NAME/commits22721cd3ef604255bc88d5be995d0f2d65e68a83))
|
||||||
|
* change minzoom of second hand shops in circular economy ([0b2e878](https://github.com/USERNAME/REPOSITORY_NAME/commits0b2e878481e3cc32b7b37c8cdb28251daa1b02d7))
|
||||||
|
* Change text type ([c9751a3](https://github.com/USERNAME/REPOSITORY_NAME/commitsc9751a3eb570f1865966fa3861fac5ff5c761f1a))
|
||||||
|
* description is now a textarea ([0c1b5d1](https://github.com/USERNAME/REPOSITORY_NAME/commits0c1b5d1b6c0d12914845a19692670bd1931f532c))
|
||||||
|
* disable 'direction'-indicator for surveillance theme as it breaks selection, fix [#1458](https://github.com/pietervdvn/MapComplete/issues/1458) ([9e15353](https://github.com/USERNAME/REPOSITORY_NAME/commits9e15353588009e39cf4a8bc2569748f40759609a))
|
||||||
|
* disable 'disused' from delete config, delete less fast for shops but use softdeletion instead ([28e737e](https://github.com/USERNAME/REPOSITORY_NAME/commits28e737ed2eb6a3934fb650df9b1939a25f954d8c))
|
||||||
|
* disable maxspeed and cycleway question for pedestrian roads ([e580f55](https://github.com/USERNAME/REPOSITORY_NAME/commitse580f553197165d611258b8c68ed9f9a66ca42c4))
|
||||||
|
* don't count food for fritures ([98d441a](https://github.com/USERNAME/REPOSITORY_NAME/commits98d441a2602c360136db9f9cc883d2ef734137e5))
|
||||||
|
* don't enforce 'allowMove' on unofficial themes ([5b45e42](https://github.com/USERNAME/REPOSITORY_NAME/commits5b45e427a0185e224446aeecfe99e87d6077379a))
|
||||||
|
* don't inline text fields if they don't have text around them ([821ddcf](https://github.com/USERNAME/REPOSITORY_NAME/commits821ddcfaca11ca194b319bfa09f8b0a9fea01a41))
|
||||||
|
* don't show 'mark as unknown' if this would break the source-filter ([76a9a2e](https://github.com/USERNAME/REPOSITORY_NAME/commits76a9a2ee23dcf61097d33fcbe556df7a46d9a395))
|
||||||
|
* don't show favourite icon if not logged in ([b1d94b2](https://github.com/USERNAME/REPOSITORY_NAME/commitsb1d94b2121195a52ced59454b51844412b9018f3))
|
||||||
|
* don't show opening_hours_state title icon if seasonal is set and the item is closed due to seasonal restrictions ([1748e98](https://github.com/USERNAME/REPOSITORY_NAME/commits1748e98bfc714e147c12b8fc233432412ed186c2))
|
||||||
|
* don't use 'Yes' or 'No' as start ([f87e735](https://github.com/USERNAME/REPOSITORY_NAME/commitsf87e73596e65a12b7fb88456dfb21dcc1eb8a850))
|
||||||
|
* elevators: first ask if there is speech output/tactile writing before asking the relative languages ([8acaafe](https://github.com/USERNAME/REPOSITORY_NAME/commits8acaafe307826ac682f25eaa0b188278ca4056fe))
|
||||||
|
* enable 'guideposts' in nature theme ([94291de](https://github.com/USERNAME/REPOSITORY_NAME/commits94291de5a3451120b6abdb153ba57675949d3d5b))
|
||||||
|
* enable 'speciality'-filter in doctors, decrease minzoom ([4090a74](https://github.com/USERNAME/REPOSITORY_NAME/commits4090a7493253e2b5513307d013d0a0061394aed6))
|
||||||
|
* enable deletion of bike_cafes ([90c44cc](https://github.com/USERNAME/REPOSITORY_NAME/commits90c44cc8bdfb7b2447f1974ed94430e5b2fa3c6f))
|
||||||
|
* enable download functionality by default ([5504d49](https://github.com/USERNAME/REPOSITORY_NAME/commits5504d49d595fee66f0c43f3efbf6f130634497be))
|
||||||
|
* enable move on schools, tweak GRB for performance ([db98288](https://github.com/USERNAME/REPOSITORY_NAME/commitsdb982884a1eea2a6e37d67129256f9c6b192a841))
|
||||||
|
* enable reviews for climbing areas and gyms ([2a3a78b](https://github.com/USERNAME/REPOSITORY_NAME/commits2a3a78bc69eea38a83378f02717bc9fdc1cd5414))
|
||||||
|
* enable reviews on pharmacies-theme ([701f033](https://github.com/USERNAME/REPOSITORY_NAME/commits701f03397e0339cba98fc776f06b38ccb13511b2))
|
||||||
|
* enable snapping for facade gardens ([da68d36](https://github.com/USERNAME/REPOSITORY_NAME/commitsda68d365feab19a94ea85b2a756e3336bfb8b127))
|
||||||
|
* exclude 'advertising=no' from loading, fix [#1865](https://github.com/pietervdvn/MapComplete/issues/1865) ([eef9918](https://github.com/USERNAME/REPOSITORY_NAME/commitseef99186cfbc46b57a97d2df78c8ef9c69a4609b))
|
||||||
|
* exclude route relations from "toilets=yes". There are a few route relations with 'toilets' and those choke up MapComplete ([139b014](https://github.com/USERNAME/REPOSITORY_NAME/commits139b014c6c1f34fff08210c1c4915ea79534086c))
|
||||||
|
* explicitly set 'allowMove' for all layers, fix [#2121](https://github.com/pietervdvn/MapComplete/issues/2121) ([468b895](https://github.com/USERNAME/REPOSITORY_NAME/commits468b895302fff50bc68cbdf72998bc08590307d0))
|
||||||
|
* extract layers from camperssite ([82e6b2a](https://github.com/USERNAME/REPOSITORY_NAME/commits82e6b2af9b564117ebb5714b8a795b759ebf528d))
|
||||||
|
* extract layers from camperssite ([44f42ee](https://github.com/USERNAME/REPOSITORY_NAME/commits44f42ee2c946d3f37224ca41f603e9c907ed5214))
|
||||||
|
* first version of circular economy theme ([592be68](https://github.com/USERNAME/REPOSITORY_NAME/commits592be68f09b06f22d45d5d5c274c91315d1613f7))
|
||||||
|
* fix [#1362](https://github.com/pietervdvn/MapComplete/issues/1362) ([ff9ca5e](https://github.com/USERNAME/REPOSITORY_NAME/commitsff9ca5e5cd6abde6c578ae442fe0d06217015288))
|
||||||
|
* fix [#1866](https://github.com/pietervdvn/MapComplete/issues/1866) ([1cf7119](https://github.com/USERNAME/REPOSITORY_NAME/commits1cf71197f51646cfceb4b58267cf1bdd2223e12f))
|
||||||
|
* fix [#1910](https://github.com/pietervdvn/MapComplete/issues/1910) ([b484ea0](https://github.com/USERNAME/REPOSITORY_NAME/commitsb484ea005b6b91bad729b7b1923f71b8fc893870))
|
||||||
|
* fix badge, fix [#1894](https://github.com/pietervdvn/MapComplete/issues/1894) ([a2279ac](https://github.com/USERNAME/REPOSITORY_NAME/commitsa2279ac28bfb1d5dbc0ac47c2762a9104e4e54c5))
|
||||||
|
* fix calculated tags of climbing theme ([f800545](https://github.com/USERNAME/REPOSITORY_NAME/commitsf80054558fe8422c7c1dfa9e277bd772f157f436))
|
||||||
|
* fix compilation ([c300d90](https://github.com/USERNAME/REPOSITORY_NAME/commitsc300d901284dfbf05c5044da46e12ec8ca4469d1))
|
||||||
|
* fix conversion for legacy themes ([21c35fc](https://github.com/USERNAME/REPOSITORY_NAME/commits21c35fc2c56eea64d18ee0fc18d65b2cdb913c82))
|
||||||
|
* fix cycle rental which dissappears ([efce134](https://github.com/USERNAME/REPOSITORY_NAME/commitsefce134a6cc90d4c3794cac91fc0a9da10fdd3b1))
|
||||||
|
* fix cycle_highways ([61575a9](https://github.com/USERNAME/REPOSITORY_NAME/commits61575a9909d8c0206e45a8106ef369ef616f45d7))
|
||||||
|
* fix icon for shops layer ([d9d8c0a](https://github.com/USERNAME/REPOSITORY_NAME/commitsd9d8c0ad1f0af64f6d08364a6c64f59b748f001a))
|
||||||
|
* fix incorrect argument, might fix [#1881](https://github.com/pietervdvn/MapComplete/issues/1881) ([209cfe6](https://github.com/USERNAME/REPOSITORY_NAME/commits209cfe6b733b849e85854d7ab3eaf4987116226f))
|
||||||
|
* fix internet question ([b132590](https://github.com/USERNAME/REPOSITORY_NAME/commitsb13259083a8d7c3b42e4df618b88de06b00f1041))
|
||||||
|
* fix overrides, fix [#1705](https://github.com/pietervdvn/MapComplete/issues/1705) ([3334bfb](https://github.com/USERNAME/REPOSITORY_NAME/commits3334bfb8cae9a2c326764e7375829769ac96c400))
|
||||||
|
* fix rendering of charging station ([0c52051](https://github.com/USERNAME/REPOSITORY_NAME/commits0c5205136b1a18ee91df65de52e9e60f2036d3b7))
|
||||||
|
* fix some isCounted-typos ([20a462f](https://github.com/USERNAME/REPOSITORY_NAME/commits20a462fdf5683587e50b42171c109e87eb193422))
|
||||||
|
* fix titles and names for assembly points and disaster_response ([170c459](https://github.com/USERNAME/REPOSITORY_NAME/commits170c4592d13929810f6e822592cd1e2d1e83a1ac))
|
||||||
|
* fix typo in soft-deletion tag ([5f62712](https://github.com/USERNAME/REPOSITORY_NAME/commits5f627124e98e98f25e9e5a834f56e906237e0241))
|
||||||
|
* fix validation errors due to [#1779](https://github.com/pietervdvn/MapComplete/issues/1779) ([707d996](https://github.com/USERNAME/REPOSITORY_NAME/commits707d99619d7b5fa90891e93d5641f52715f04beb))
|
||||||
|
* fix: don't show irrelevant 'multilevel'-question anymore ([b5fca68](https://github.com/USERNAME/REPOSITORY_NAME/commitsb5fca68a82d529bd10f56ba0dd63d27ae11ea2a5))
|
||||||
|
* ghost signs: add wall-based artworks to be able to mark them as ghost sign and to avoid duplicates ([e68edeb](https://github.com/USERNAME/REPOSITORY_NAME/commitse68edeb29fa604daee0c7638999bcebab2fd7b11))
|
||||||
|
* ghost signs: add wall-based artworks to be able to mark them as ghost sign and to avoid duplicates ([8f95e85](https://github.com/USERNAME/REPOSITORY_NAME/commits8f95e8520a751ef9fef8cc7a8810322117c7b6c1))
|
||||||
|
* hackerspaces: more workshop types ([70fa180](https://github.com/USERNAME/REPOSITORY_NAME/commits70fa180b6a1e1a0db4e54f623797c05847b7face))
|
||||||
|
* Hide bike cleaning cost if we don't know if there is a bike cleaning service ([87aee9e](https://github.com/USERNAME/REPOSITORY_NAME/commits87aee9e2b72013e387fd3c196a9940bf477743c8))
|
||||||
|
* improve 'auto-type' special visualisation ([658db35](https://github.com/USERNAME/REPOSITORY_NAME/commits658db3561722ec5d220043969ed1154c9e7411af))
|
||||||
|
* improve 'tourism-accomodation', add many more categories as some people are using 'hotels' to also add other categories (see https://wiki.openstreetmap.org/wiki/Organised_Editing/Activities/Trziste_prace) ([53ffa06](https://github.com/USERNAME/REPOSITORY_NAME/commits53ffa06a49a670ff23e605595aea7919c84f20b5))
|
||||||
|
* improve 'tourism-accomodation', add many more categories as some people are using 'hotels' to also add other categories (see https://wiki.openstreetmap.org/wiki/Organised_Editing/Activities/Trziste_prace) ([bc54f79](https://github.com/USERNAME/REPOSITORY_NAME/commitsbc54f797d792ebeac4b043612df9682a1a4c79c6))
|
||||||
|
* improve ability of 'rewrite' config ([f015604](https://github.com/USERNAME/REPOSITORY_NAME/commitsf015604000e09b81625d8dc5617e7c999b27fc74))
|
||||||
|
* improve advertising theme, see [#1866](https://github.com/pietervdvn/MapComplete/issues/1866), translation reset for new presets ([05bba07](https://github.com/USERNAME/REPOSITORY_NAME/commits05bba071dc44897fe795974a39d472159cbaadd4))
|
||||||
|
* improve atm opening hours, add reviews to playgrounds ([9ce60b6](https://github.com/USERNAME/REPOSITORY_NAME/commits9ce60b6ffb175803fde11b9116a0e1390ade766c))
|
||||||
|
* improve benches ([9e10bf4](https://github.com/USERNAME/REPOSITORY_NAME/commits9e10bf421f9bcd1cadec10638eb520132c647c64))
|
||||||
|
* improve error messages ([6897b88](https://github.com/USERNAME/REPOSITORY_NAME/commits6897b888170399db9a5d4e649d89dee2f9d0b30f))
|
||||||
|
* improve favourite panel ([59090fd](https://github.com/USERNAME/REPOSITORY_NAME/commits59090fdb39a864b7d8b64a26fe35e98eacfa2121))
|
||||||
|
* improve information about indoor rooms ([47bf119](https://github.com/USERNAME/REPOSITORY_NAME/commits47bf1195bcc198446c35b31ebd7d446efde7dd9d))
|
||||||
|
* improve velopark usability ([c1003f8](https://github.com/USERNAME/REPOSITORY_NAME/commitsc1003f8fe79c4a2ce820d9764b51a4a25b6e7bbd))
|
||||||
|
* improvements to BBQ, different icons, add some questions, remove 'unknown'-options ([2db0b1a](https://github.com/USERNAME/REPOSITORY_NAME/commits2db0b1afcbbf7c8d8e6174080a1e62295c223e87))
|
||||||
|
* improvements to memorial theme ([59f56bd](https://github.com/USERNAME/REPOSITORY_NAME/commits59f56bd251c2523cb81ca07c74f9107c70560869))
|
||||||
|
* include love hotels in regular hotels theme (with a high minzoom) ([d48b8af](https://github.com/USERNAME/REPOSITORY_NAME/commitsd48b8aff922e3478a62ecc3e92f92b750e8eef8f))
|
||||||
|
* lint layers to use an array instead of a string for 'snapToLayers' ([d534842](https://github.com/USERNAME/REPOSITORY_NAME/commitsd534842d050f046ac5187ff8386c9edf052cdd23))
|
||||||
|
* make filters of public bookcase translatable ([7b3d07e](https://github.com/USERNAME/REPOSITORY_NAME/commits7b3d07e5c489c0d139543cb7e5481e522b435b12))
|
||||||
|
* make the selected note pulsate and have a different border when selected ([83fc189](https://github.com/USERNAME/REPOSITORY_NAME/commits83fc189fd332c0df2dc719a7ba676f3fad7cca32))
|
||||||
|
* more questions about climbing services ([3769bd1](https://github.com/USERNAME/REPOSITORY_NAME/commits3769bd1c4fc7976d8d980f049ca6a3ecbc8710f1))
|
||||||
|
* move all bike_shop questions into shops, reuse shops layer instead ([3c16e3d](https://github.com/USERNAME/REPOSITORY_NAME/commits3c16e3de686a903c1807d7a3a1397c6f350c8476))
|
||||||
|
* move some bicycle shop questions into the shops-layer so that those questions are asked there as well (and that both layers can be unified) ([6cd7828](https://github.com/USERNAME/REPOSITORY_NAME/commits6cd7828ed3576dd8abf36c24032f9ec1d4966684))
|
||||||
|
* move tagRenderings+ above leftover-questions ([f2f041f](https://github.com/USERNAME/REPOSITORY_NAME/commitsf2f041f9d0bfb557588ccd90b1d710498aa8edc0))
|
||||||
|
* only add rating-title-icon if 'review_list()' is used in the layer ([6c75553](https://github.com/USERNAME/REPOSITORY_NAME/commits6c75553f3fec7642c7bbb75d999781126a344065))
|
||||||
|
* phone validation now knows about some short-codes ([38b9523](https://github.com/USERNAME/REPOSITORY_NAME/commits38b9523b835b72bfe9f068b55015d8f7868951c9))
|
||||||
|
* pin more markers to new icon ([04ee3dc](https://github.com/USERNAME/REPOSITORY_NAME/commits04ee3dc32c7b1e8c6690a91624530309df65e813))
|
||||||
|
* properly show the name of the hospital ([9739973](https://github.com/USERNAME/REPOSITORY_NAME/commits9739973f2e9e1c98e0ae6ea58f55bf8588a9de14))
|
||||||
|
* re-enable terrain ([94bc6ee](https://github.com/USERNAME/REPOSITORY_NAME/commits94bc6ee31d36c56c31090ea07c7f2baecff99eb1))
|
||||||
|
* remove obsolete fields from drinking water theme ([66cc615](https://github.com/USERNAME/REPOSITORY_NAME/commits66cc615805246100634aaccd8426c59eec5c03ce))
|
||||||
|
* remove obsolete SOTM-events, fix [#1909](https://github.com/pietervdvn/MapComplete/issues/1909) ([5659dd8](https://github.com/USERNAME/REPOSITORY_NAME/commits5659dd8e8c2a1fbf596cf9fa2e3cb56ed2d95349))
|
||||||
|
* remove unneeded invalidValues ([4fe0c41](https://github.com/USERNAME/REPOSITORY_NAME/commits4fe0c41628ae0a9dc6985a10bb396ea96534dde9))
|
||||||
|
* show capacity:cargo_bike, allow to erase it ([58dfb93](https://github.com/USERNAME/REPOSITORY_NAME/commits58dfb93818e6f737b93c406b25bf4eb3c0572d7c))
|
||||||
|
* show keycutting service question ([5bcc617](https://github.com/USERNAME/REPOSITORY_NAME/commits5bcc617d22ce6596f48f8e68a21910cd744c4682))
|
||||||
|
* show maproulette marker in linking menu ([e327d38](https://github.com/USERNAME/REPOSITORY_NAME/commitse327d385d126864bb5e3ba17e3f3b2ff2fd7b5ae))
|
||||||
|
* show maproulette marker in linking menu ([ac6fdde](https://github.com/USERNAME/REPOSITORY_NAME/commitsac6fdde785ddf11b833501ac3de6c4a9bf84201d))
|
||||||
|
* show maproulette marker in linking menu ([8a4e2d8](https://github.com/USERNAME/REPOSITORY_NAME/commits8a4e2d8cb56c28b38ac03262dbfd76f874d3f2ef))
|
||||||
|
* show toilets only from zoomlevel >= 15 ([6760897](https://github.com/USERNAME/REPOSITORY_NAME/commits6760897a6f6427755b63c8cc7da37b9d39279083))
|
||||||
|
* small tweaks to fitness stations ([3f4410f](https://github.com/USERNAME/REPOSITORY_NAME/commits3f4410ff19e71c02e59df5fbe1ef77bcb2a53224))
|
||||||
|
* tweak zoomlevels ([303d3a0](https://github.com/USERNAME/REPOSITORY_NAME/commits303d3a0337afc388ed2158ab008a8a17684c6530))
|
||||||
|
* Update climbing_route.json: add snap to layer ([193b8b4](https://github.com/USERNAME/REPOSITORY_NAME/commits193b8b4672405abe0e54d3143c9faec88733e450))
|
||||||
|
* Update climbing.json: add layers ([bb9b1df](https://github.com/USERNAME/REPOSITORY_NAME/commitsbb9b1df4e0b26fff0a0e2e513b544c910f046f86))
|
||||||
|
* update some default background layers ([a855840](https://github.com/USERNAME/REPOSITORY_NAME/commitsa85584040d436012e3c68fe85e54e490529388db))
|
||||||
|
* update tagging of climbing shoe repair ([d1aa751](https://github.com/USERNAME/REPOSITORY_NAME/commitsd1aa751e1831cd1090ea5a738462b052fad2a4d9))
|
||||||
|
* Update velopark description ([9083e89](https://github.com/USERNAME/REPOSITORY_NAME/commits9083e8954971ad4bed1914bc7cd5c30397b23895))
|
||||||
|
* validate that a background layer actually exists, fix current-view button (GRB) ([fc483ed](https://github.com/USERNAME/REPOSITORY_NAME/commitsfc483ed54776ed78efb9d9f4b2b868ac85a0e6b3))
|
||||||
|
* validate that a background layer actually exists, fix current-view button (GRB) ([eb6194b](https://github.com/USERNAME/REPOSITORY_NAME/commitseb6194bf8f1752a7ef80583d8b878f75c146c7f8))
|
||||||
|
* various fixes to velopark, see [#1783](https://github.com/pietervdvn/MapComplete/issues/1783) ([2583fee](https://github.com/USERNAME/REPOSITORY_NAME/commits2583feef65e18f786253c93123e22d111e992ccf))
|
||||||
|
* various improvements ([d4895a0](https://github.com/USERNAME/REPOSITORY_NAME/commitsd4895a098916183cef47f5dc79d1870b99472be3))
|
||||||
|
* velopark: reorder attributes for a clearer view ([0929b55](https://github.com/USERNAME/REPOSITORY_NAME/commits0929b55b0807eb8cd9dea188d03339facf1113ce))
|
||||||
|
* vending machines: add meat as option, add operator phone number, add 'condom' icon, fix [#1584](https://github.com/pietervdvn/MapComplete/issues/1584) ([86d0e5d](https://github.com/USERNAME/REPOSITORY_NAME/commits86d0e5dc745805772f248d67eddfec88095657a6))
|
||||||
|
|
||||||
|
### [0.46.6](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.7...v0.46.6) (2024-09-13)
|
||||||
|
|
||||||
|
### [0.46.7](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.6...v0.46.7) (2024-09-13)
|
|
@ -43,6 +43,14 @@
|
||||||
"https://osoc.be/editions/2020/walk-by-brussels"
|
"https://osoc.be/editions/2020/walk-by-brussels"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "safe_loops.svg",
|
||||||
|
"license": "CC-BY-SA-4.0",
|
||||||
|
"authors": [
|
||||||
|
"Robbert Gurdeep Singh"
|
||||||
|
],
|
||||||
|
"sources": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "shed.svg",
|
"path": "shed.svg",
|
||||||
"license": "CC-BY-SA-4.0",
|
"license": "CC-BY-SA-4.0",
|
||||||
|
@ -82,13 +90,5 @@
|
||||||
"sources": [
|
"sources": [
|
||||||
"https://osoc.be/editions/2020/walk-by-brussels"
|
"https://osoc.be/editions/2020/walk-by-brussels"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "safe_loops.svg",
|
|
||||||
"license": "CC-BY-SA",
|
|
||||||
"authors": [
|
|
||||||
"Robbert Gurdeep Singh"
|
|
||||||
],
|
|
||||||
"sources": [ ]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 3 KiB |
2
assets/layers/bike_parking/safe_loops.svg.license
Normal file
2
assets/layers/bike_parking/safe_loops.svg.license
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
SPDX-FileCopyrightText: Robbert Gurdeep Singh
|
||||||
|
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
@ -344,34 +344,34 @@
|
||||||
"if": "cuisine=pizza",
|
"if": "cuisine=pizza",
|
||||||
"icon": "🍕",
|
"icon": "🍕",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "This is a pizzeria",
|
"en": "Pizzeria",
|
||||||
"nl": "Dit is een pizzeria",
|
"nl": "Pizzeria",
|
||||||
"de": "Dies ist eine Pizzeria",
|
"de": "Pizzeria",
|
||||||
"es": "Esto es una pizzería",
|
"es": "Pizzería",
|
||||||
"fr": "C'est une pizzéria",
|
"fr": "Pizzéria",
|
||||||
"ca": "Això és una pizzeria",
|
"ca": "Pizzeria",
|
||||||
"pl": "To jest pizzeria",
|
"pl": "Pizzeria",
|
||||||
"cs": "Tohle je pizzerie"
|
"cs": "Pizzerie"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"if": "cuisine=friture",
|
"if": "cuisine=friture",
|
||||||
"icon": "🍟",
|
"icon": "🍟",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "This is a friture",
|
"en": "Friture",
|
||||||
"nl": "Dit is een frituur",
|
"nl": "Frituur",
|
||||||
"de": "Dies ist eine Pommesbude",
|
"de": "Pommesbude",
|
||||||
"fr": "C'est une friterie",
|
"fr": "Friterie",
|
||||||
"ca": "Això és una fregiduria",
|
"ca": "Fregiduria",
|
||||||
"cs": "Tohle je hranolkárna"
|
"cs": "Hranolkárna"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"if": "cuisine=pasta",
|
"if": "cuisine=pasta",
|
||||||
"icon": "🍝",
|
"icon": "🍝",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Mainly serves pasta",
|
"en": "Serves mainly pasta",
|
||||||
"nl": "Dit is een pastazaak",
|
"nl": "Pastazaak",
|
||||||
"de": "Bietet vorwiegend Pastagerichte an",
|
"de": "Bietet vorwiegend Pastagerichte an",
|
||||||
"es": "Principalmente sirve pasta",
|
"es": "Principalmente sirve pasta",
|
||||||
"fr": "Restaurant Italien",
|
"fr": "Restaurant Italien",
|
||||||
|
@ -384,11 +384,11 @@
|
||||||
"if": "cuisine=kebab",
|
"if": "cuisine=kebab",
|
||||||
"icon": "🥙",
|
"icon": "🥙",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "This is kebab shop",
|
"en": "Kebab shop",
|
||||||
"nl": "Dit is een kebabzaak",
|
"nl": "Kebabzaak",
|
||||||
"de": "Das ist ein Dönerladen",
|
"de": "Dönerladen",
|
||||||
"es": "Esta es una tienda de kebak",
|
"es": "Tienda de kebak",
|
||||||
"fr": "C'est un resto kebab",
|
"fr": "Resto kebab",
|
||||||
"pl": "To jest stoisko z kebabem",
|
"pl": "To jest stoisko z kebabem",
|
||||||
"ca": "Aquesta és una botiga de kebabs",
|
"ca": "Aquesta és una botiga de kebabs",
|
||||||
"cs": "Tohle je kebab"
|
"cs": "Tohle je kebab"
|
||||||
|
@ -398,11 +398,11 @@
|
||||||
"if": "cuisine=sandwich",
|
"if": "cuisine=sandwich",
|
||||||
"icon": "🥪",
|
"icon": "🥪",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "This is a sandwich shop",
|
"en": "Sandwich shop",
|
||||||
"nl": "Dit is een broodjeszaak",
|
"nl": "Broodjeszaak",
|
||||||
"de": "Dies ist ein Sandwichladen",
|
"de": "Sandwichladen",
|
||||||
"fr": "C'est une sandwicherie",
|
"fr": "Sandwicherie",
|
||||||
"ca": "Això és una botiga d'entrepans",
|
"ca": "Botiga d'entrepans",
|
||||||
"cs": "Toto je obchod se sendviči"
|
"cs": "Toto je obchod se sendviči"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -410,10 +410,9 @@
|
||||||
"if": "cuisine=burger",
|
"if": "cuisine=burger",
|
||||||
"icon": "🍔",
|
"icon": "🍔",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Burgers are served here",
|
"en": "Burgersrestaurant",
|
||||||
"nl": "Dit is een hamburgerrestaurant",
|
"nl": "Hamburgerrestaurant",
|
||||||
"de": "Hier werden Burger serviert",
|
"es": "Hamburguesas",
|
||||||
"es": "Aquí se sirven hamburguesas",
|
|
||||||
"fr": "Des hamburgers sont servis ici",
|
"fr": "Des hamburgers sont servis ici",
|
||||||
"ca": "Aquí es serveixen hamburgueses",
|
"ca": "Aquí es serveixen hamburgueses",
|
||||||
"pl": "Są tu podawane burgery",
|
"pl": "Są tu podawane burgery",
|
||||||
|
@ -424,8 +423,8 @@
|
||||||
"if": "cuisine=sushi",
|
"if": "cuisine=sushi",
|
||||||
"icon": "🍣",
|
"icon": "🍣",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Sushi is served here",
|
"en": "Sushi restaurant",
|
||||||
"nl": "Dit is een sushirestaurant",
|
"nl": "Sushirestaurant",
|
||||||
"de": "Hier wird Sushi serviert",
|
"de": "Hier wird Sushi serviert",
|
||||||
"es": "Aquí se sirve sushi",
|
"es": "Aquí se sirve sushi",
|
||||||
"fr": "Des sushis sont servis ici",
|
"fr": "Des sushis sont servis ici",
|
||||||
|
@ -437,8 +436,8 @@
|
||||||
"if": "cuisine=coffee",
|
"if": "cuisine=coffee",
|
||||||
"icon": "☕",
|
"icon": "☕",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Coffee is served here",
|
"en": "Coffeebar",
|
||||||
"nl": "Dit is een koffiezaak",
|
"nl": "Koffiezaak",
|
||||||
"de": "Hier wird Kaffee serviert",
|
"de": "Hier wird Kaffee serviert",
|
||||||
"es": "Aquí se sirve café",
|
"es": "Aquí se sirve café",
|
||||||
"fr": "C'est un café",
|
"fr": "C'est un café",
|
||||||
|
@ -450,8 +449,8 @@
|
||||||
"if": "cuisine=italian",
|
"if": "cuisine=italian",
|
||||||
"icon": "🇮🇹",
|
"icon": "🇮🇹",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "This is an Italian restaurant (which serves more than pasta and pizza)",
|
"en": "Italian restaurant (which serves more than pasta and pizza)",
|
||||||
"nl": "Dit is een Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)",
|
"nl": "Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)",
|
||||||
"de": "Dies ist ein italienisches Restaurant (das mehr als nur Pasta und Pizza serviert)",
|
"de": "Dies ist ein italienisches Restaurant (das mehr als nur Pasta und Pizza serviert)",
|
||||||
"es": "Este es un restaurante italiano (que sirve algo más que pasta y pizza)",
|
"es": "Este es un restaurante italiano (que sirve algo más que pasta y pizza)",
|
||||||
"fr": "C'est un Restaurant Italien (qui sert plus que des pâtes et des pizzas)",
|
"fr": "C'est un Restaurant Italien (qui sert plus que des pâtes et des pizzas)",
|
||||||
|
@ -463,8 +462,8 @@
|
||||||
"if": "cuisine=french",
|
"if": "cuisine=french",
|
||||||
"icon": "🇫🇷",
|
"icon": "🇫🇷",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "French dishes are served here",
|
"en": "French restaurant",
|
||||||
"nl": "Dit is een Frans restaurant",
|
"nl": "Frans restaurant",
|
||||||
"de": "Hier werden französische Gerichte serviert",
|
"de": "Hier werden französische Gerichte serviert",
|
||||||
"es": "Aquí se sirven platos Franceses",
|
"es": "Aquí se sirven platos Franceses",
|
||||||
"fr": "Des plats français sont servis ici",
|
"fr": "Des plats français sont servis ici",
|
||||||
|
@ -476,8 +475,8 @@
|
||||||
"if": "cuisine=chinese",
|
"if": "cuisine=chinese",
|
||||||
"icon": "🇨🇳",
|
"icon": "🇨🇳",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Chinese dishes are served here",
|
"en": "Chinese",
|
||||||
"nl": "Dit is een Chinees restaurant",
|
"nl": "Chinees restaurant",
|
||||||
"de": "Hier werden chinesische Gerichte serviert",
|
"de": "Hier werden chinesische Gerichte serviert",
|
||||||
"es": "Aquí se sirven platos Chinos",
|
"es": "Aquí se sirven platos Chinos",
|
||||||
"fr": "Des plats chinois sont servis ici",
|
"fr": "Des plats chinois sont servis ici",
|
||||||
|
@ -489,8 +488,8 @@
|
||||||
"if": "cuisine=greek",
|
"if": "cuisine=greek",
|
||||||
"icon": "🇬🇷",
|
"icon": "🇬🇷",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Greek dishes are served here",
|
"en": "Greek",
|
||||||
"nl": "Dit is een Grieks restaurant",
|
"nl": "Grieks restaurant",
|
||||||
"de": "Hier werden griechische Gerichte serviert",
|
"de": "Hier werden griechische Gerichte serviert",
|
||||||
"es": "Aquí se sirven platos Griegos",
|
"es": "Aquí se sirven platos Griegos",
|
||||||
"fr": "Des plats grecs sont servis ici",
|
"fr": "Des plats grecs sont servis ici",
|
||||||
|
@ -502,8 +501,8 @@
|
||||||
"if": "cuisine=indian",
|
"if": "cuisine=indian",
|
||||||
"icon": "🇮🇳",
|
"icon": "🇮🇳",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Indian dishes are served here",
|
"en": "Indian",
|
||||||
"nl": "Dit is een Indisch restaurant",
|
"nl": "Indisch restaurant",
|
||||||
"de": "Hier werden indische Gerichte serviert",
|
"de": "Hier werden indische Gerichte serviert",
|
||||||
"es": "Aquí se sirven platos Indios",
|
"es": "Aquí se sirven platos Indios",
|
||||||
"fr": "Des plats indiens sont servis ici",
|
"fr": "Des plats indiens sont servis ici",
|
||||||
|
@ -515,8 +514,8 @@
|
||||||
"if": "cuisine=turkish",
|
"if": "cuisine=turkish",
|
||||||
"icon": "🇹🇷",
|
"icon": "🇹🇷",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Turkish dishes are served here",
|
"en": "Turkish restaurant",
|
||||||
"nl": "Dit is een Turks restaurant (dat meer dan enkel kebab verkoopt)",
|
"nl": "Turks restaurant",
|
||||||
"de": "Hier werden türkische Gerichte serviert",
|
"de": "Hier werden türkische Gerichte serviert",
|
||||||
"es": "Aquí se sirven platos Turcos",
|
"es": "Aquí se sirven platos Turcos",
|
||||||
"fr": "Des plats turcs sont servis ici",
|
"fr": "Des plats turcs sont servis ici",
|
||||||
|
@ -528,8 +527,8 @@
|
||||||
"if": "cuisine=thai",
|
"if": "cuisine=thai",
|
||||||
"icon": "🇹🇭",
|
"icon": "🇹🇭",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Thai dishes are served here",
|
"en": "Thai restaurant",
|
||||||
"nl": "Dit is een Thaïs restaurant",
|
"nl": "Thaïs restaurant",
|
||||||
"de": "Hier werden thailändische Gerichte serviert",
|
"de": "Hier werden thailändische Gerichte serviert",
|
||||||
"fr": "Des plats thaïlandais sont servis ici",
|
"fr": "Des plats thaïlandais sont servis ici",
|
||||||
"ca": "Aquí es serveixen plats tailandesos",
|
"ca": "Aquí es serveixen plats tailandesos",
|
||||||
|
|
70
assets/layers/geocoded_image/geocoded_image.json
Normal file
70
assets/layers/geocoded_image/geocoded_image.json
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
{
|
||||||
|
"id": "geocoded_image",
|
||||||
|
"source": "special",
|
||||||
|
"name": null,
|
||||||
|
"tagRenderings": [],
|
||||||
|
"pointRendering": [
|
||||||
|
{
|
||||||
|
"location": [
|
||||||
|
"point",
|
||||||
|
"centroid"
|
||||||
|
],
|
||||||
|
"marker": [
|
||||||
|
{
|
||||||
|
"icon": "direction_gradient",
|
||||||
|
"color": {
|
||||||
|
"render": "#44cc22",
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "selected=yes",
|
||||||
|
"then": "#cccc22"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rotation": "{rotation}deg",
|
||||||
|
"rotationAlignment": "map",
|
||||||
|
"pitchAlignment": "map",
|
||||||
|
"iconSize": "60,60"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"location": [
|
||||||
|
"point",
|
||||||
|
"centroid"
|
||||||
|
],
|
||||||
|
"rotationAlignment": "map",
|
||||||
|
"pitchAlignment": "map",
|
||||||
|
"marker": [
|
||||||
|
{
|
||||||
|
"icon": "circle",
|
||||||
|
"color": {
|
||||||
|
"render": "#44cc22",
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "selected=yes",
|
||||||
|
"then": "#cccc22"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"iconSize": "14,14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"location": [
|
||||||
|
"point",
|
||||||
|
"centroid"
|
||||||
|
],
|
||||||
|
"rotationAlignment": "map",
|
||||||
|
"pitchAlignment": "map",
|
||||||
|
"marker": [
|
||||||
|
{
|
||||||
|
"icon": "ring",
|
||||||
|
"color": "#000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"iconSize": "14,14"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -13,18 +13,21 @@
|
||||||
"source": {
|
"source": {
|
||||||
"osmTags": "date_created~*",
|
"osmTags": "date_created~*",
|
||||||
"geoJson": "https://api.openstreetmap.org/api/0.6/notes.json?limit=10000&closed=7&bbox={x_min},{y_min},{x_max},{y_max}",
|
"geoJson": "https://api.openstreetmap.org/api/0.6/notes.json?limit=10000&closed=7&bbox={x_min},{y_min},{x_max},{y_max}",
|
||||||
"geoJsonZoomLevel": 12
|
"geoJsonZoomLevel": 10
|
||||||
},
|
},
|
||||||
"calculatedTags": [
|
"calculatedTags": [
|
||||||
"_total_comments:=get(feat)('comments').length",
|
"_total_comments:=get(feat)('comments').length",
|
||||||
"_first_comment:=get(feat)('comments')[0].text",
|
"_first_comment:=get(feat)('comments')[0].text",
|
||||||
|
"_all_comments:=get(feat)('comments').map(c => c.text ?? '').join('\\n')",
|
||||||
|
"_all_usernames:=get(feat)('comments').map(c => c.user ?? 'Anonymous').join('\\n')",
|
||||||
"_opened_by_anonymous_user:=get(feat)('comments')[0].user === undefined",
|
"_opened_by_anonymous_user:=get(feat)('comments')[0].user === undefined",
|
||||||
"_first_user:=get(feat)('comments')[0].user",
|
"_first_user:=get(feat)('comments')[0].user",
|
||||||
"_last_user:=(() => {const comms = get(feat)('comments'); return comms[comms.length - 1].user})()",
|
"_last_user:=(() => {const comms = get(feat)('comments'); return comms[comms.length - 1].user})()",
|
||||||
|
"_last_change_date:=(() => {const comms = get(feat)('comments'); return comms[comms.length - 1].date})()",
|
||||||
"_first_user_id:=get(feat)('comments')[0].uid",
|
"_first_user_id:=get(feat)('comments')[0].uid",
|
||||||
"_is_import_note:=(() => {const lines = feat.properties['_first_comment'].split('\\n'); const matchesMapCompleteURL = lines.map(l => l.match(\".*https://mapcomplete.\\(osm.be|org\\)/\\([a-zA-Z_-]+\\)\\(.html\\).*#import\")); const matchedIndexes = matchesMapCompleteURL.map((doesMatch, i) => [doesMatch !== null, i]).filter(v => v[0]).map(v => v[1]); return matchedIndexes[0] })()"
|
"_is_import_note:=(() => {const lines = feat.properties['_first_comment'].split('\\n'); const matchesMapCompleteURL = lines.map(l => l.match(\".*https://mapcomplete.\\(osm.be|org\\)/\\([a-zA-Z_-]+\\)\\(.html\\).*#import\")); const matchedIndexes = matchesMapCompleteURL.map((doesMatch, i) => [doesMatch !== null, i]).filter(v => v[0]).map(v => v[1]); return matchedIndexes[0] })()"
|
||||||
],
|
],
|
||||||
"minzoom": 10,
|
"minzoom": 7,
|
||||||
"title": {
|
"title": {
|
||||||
"render": {
|
"render": {
|
||||||
"en": "Note",
|
"en": "Note",
|
||||||
|
@ -158,183 +161,6 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"filter": [
|
"filter": [
|
||||||
{
|
|
||||||
"id": "search",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"osmTags": "_first_comment~i~.*{search}.*",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"name": "search"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"question": {
|
|
||||||
"en": "Should mention {search} in the first comment",
|
|
||||||
"nl": "Moet in de eerste opmerking \"{search}\" bevatten",
|
|
||||||
"de": "Sollte {search} im ersten Kommentar erwähnen",
|
|
||||||
"es": "Debe mencionar {search} en el primer comentario",
|
|
||||||
"ca": "Has de mencionar {search} en el primer comentari",
|
|
||||||
"cs": "Měl by se zmínit {search} v prvním komentáři"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "not",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"osmTags": "_first_comment!~i~.*{search}.*",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"name": "search"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"question": {
|
|
||||||
"en": "Should <b>not</b> mention {search} in the first comment",
|
|
||||||
"nl": "Mag in de eerste opmerking <b>niet</b> \"{search}\" bevatten",
|
|
||||||
"de": "Sollte <b>nicht</b> {search} im ersten Kommentar erwähnen",
|
|
||||||
"es": "<b>No</b> debe mencionar {search} en el primer comentario",
|
|
||||||
"ca": "<b>No</b> s'ha de mencionar {search} al primer comentari",
|
|
||||||
"cs": "V prvním komentáři by jste <b>neměli</b> zmiňovat {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "opened_by",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"osmTags": "_first_user~i~.*{search}.*",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"name": "search"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"question": {
|
|
||||||
"en": "Opened by contributor {search}",
|
|
||||||
"nl": "Geopend door bijdrager {search}",
|
|
||||||
"de": "Erstellt von {search}",
|
|
||||||
"es": "Abierto por el contributor {search}",
|
|
||||||
"fr": "Ouverte par {search}",
|
|
||||||
"ca": "Obert pel contribuïdor {search}",
|
|
||||||
"cs": "Otevřeno přispěvatelem {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "not_opened_by",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"osmTags": "_first_user!~i~.*{search}.*",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"name": "search"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"question": {
|
|
||||||
"en": "<b>Not</b> opened by contributor {search}",
|
|
||||||
"nl": "<b>Niet</b> geopend door bijdrager {search}",
|
|
||||||
"de": "<b>Nicht</b> erstellt von {search}",
|
|
||||||
"es": "<b>No</b> abierto por el contributor {search}",
|
|
||||||
"ca": "<b>No</b> obert pel contribuïdor {search}",
|
|
||||||
"cs": "<b>Není</b> otevřeno přispěvatelem {search}",
|
|
||||||
"fr": "<b>Exclure</b>les notes ouvertes par {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "edited_by",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"osmTags": "_last_user~i~.*{search}.*",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"name": "search"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"question": {
|
|
||||||
"en": "Last edited by contributor {search}",
|
|
||||||
"nl": "Laatst bewerkt door bijdrager {search}",
|
|
||||||
"de": "Zuletzt bearbeitet von {search}",
|
|
||||||
"es": "Editada por última vez por el contributor {search}",
|
|
||||||
"ca": "Editat per última vega pel contribuïdor {search}",
|
|
||||||
"cs": "Naposledy upravil přispěvatel {search}",
|
|
||||||
"da": "Senest redigeret af bidragsyder {search}",
|
|
||||||
"fr": "Dernière modification par {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "not_edited_by",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"osmTags": "_last_user!~i~.*{search}.*",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"name": "search"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"question": {
|
|
||||||
"en": "Opened after {search}",
|
|
||||||
"nl": "Geopend na {search}",
|
|
||||||
"de": "Zuletzt bearbeitet nach dem {search}",
|
|
||||||
"es": "Abierta después de {search}",
|
|
||||||
"ca": "Oberta després de {search}",
|
|
||||||
"cs": "Otevřeno po {search}",
|
|
||||||
"fr": "Ouverte après le {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "opened_before",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"osmTags": "date_created<{search}",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"name": "search",
|
|
||||||
"type": "date"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"question": {
|
|
||||||
"en": "Created before {search}",
|
|
||||||
"nl": "Aangemaakt voor {search}",
|
|
||||||
"de": "Erstellt vor dem {search}",
|
|
||||||
"es": "Creada antes de {search}",
|
|
||||||
"ca": "Creada abans de {search}",
|
|
||||||
"cs": "Vytvořeno před {search}",
|
|
||||||
"fr": "Créée avant le {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "opened_after",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"osmTags": "date_created>{search}",
|
|
||||||
"fields": [
|
|
||||||
{
|
|
||||||
"name": "search",
|
|
||||||
"type": "date"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"question": {
|
|
||||||
"en": "Created after {search}",
|
|
||||||
"nl": "Aangemaakt na {search}",
|
|
||||||
"de": "Erstellt nach dem {search}",
|
|
||||||
"es": "Creada después de {search}",
|
|
||||||
"ca": "Creada després de {search}",
|
|
||||||
"cs": "Vytvořeno po {search}",
|
|
||||||
"fr": "Créée après le {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "anonymous",
|
"id": "anonymous",
|
||||||
"options": [
|
"options": [
|
||||||
|
@ -406,6 +232,244 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "search",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_first_comment~i~.*{search}.*",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Should mention {search} in the first comment",
|
||||||
|
"nl": "Moet in de eerste opmerking \"{search}\" bevatten",
|
||||||
|
"de": "Sollte {search} im ersten Kommentar erwähnen",
|
||||||
|
"es": "Debe mencionar {search} en el primer comentario",
|
||||||
|
"ca": "Has de mencionar {search} en el primer comentari",
|
||||||
|
"cs": "Měl by se zmínit {search} v prvním komentáři"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "search_any",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_all_comments~i~.*{search}.*",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Should mention {search} in any comment"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"id": "not",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_first_comment!~i~.*{search}.*",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Should <b>not</b> mention {search} in the first comment",
|
||||||
|
"nl": "Mag in de eerste opmerking <b>niet</b> \"{search}\" bevatten",
|
||||||
|
"de": "Sollte <b>nicht</b> {search} im ersten Kommentar erwähnen",
|
||||||
|
"es": "<b>No</b> debe mencionar {search} en el primer comentario",
|
||||||
|
"ca": "<b>No</b> s'ha de mencionar {search} al primer comentari",
|
||||||
|
"cs": "V prvním komentáři by jste <b>neměli</b> zmiňovat {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "opened_by",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_first_user~i~.*{search}.*",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Opened by contributor {search}",
|
||||||
|
"nl": "Geopend door bijdrager {search}",
|
||||||
|
"de": "Erstellt von {search}",
|
||||||
|
"es": "Abierto por el contributor {search}",
|
||||||
|
"fr": "Ouverte par {search}",
|
||||||
|
"ca": "Obert pel contribuïdor {search}",
|
||||||
|
"cs": "Otevřeno přispěvatelem {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "not_opened_by",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_first_user!~i~.*{search}.*",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "<b>Not</b> opened by contributor {search}",
|
||||||
|
"nl": "<b>Niet</b> geopend door bijdrager {search}",
|
||||||
|
"de": "<b>Nicht</b> erstellt von {search}",
|
||||||
|
"es": "<b>No</b> abierto por el contributor {search}",
|
||||||
|
"ca": "<b>No</b> obert pel contribuïdor {search}",
|
||||||
|
"cs": "<b>Není</b> otevřeno přispěvatelem {search}",
|
||||||
|
"fr": "<b>Exclure</b>les notes ouvertes par {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "edited_by_any",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_all_usernames~i~.*{search}.*",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Edited or commented on by any user with name {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "last_edited_by",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_last_user~i~.*{search}.*",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Last edited by contributor {search}",
|
||||||
|
"nl": "Laatst bewerkt door bijdrager {search}",
|
||||||
|
"de": "Zuletzt bearbeitet von {search}",
|
||||||
|
"es": "Editada por última vez por el contributor {search}",
|
||||||
|
"ca": "Editat per última vega pel contribuïdor {search}",
|
||||||
|
"cs": "Naposledy upravil přispěvatel {search}",
|
||||||
|
"da": "Senest redigeret af bidragsyder {search}",
|
||||||
|
"fr": "Dernière modification par {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "not_last_edited_by",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_last_user!~i~.*{search}.*",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Not edited as last by {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "opened_before",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "date_created<{search}",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search",
|
||||||
|
"type": "date"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Created before {search}",
|
||||||
|
"nl": "Aangemaakt voor {search}",
|
||||||
|
"de": "Erstellt vor dem {search}",
|
||||||
|
"es": "Creada antes de {search}",
|
||||||
|
"ca": "Creada abans de {search}",
|
||||||
|
"cs": "Vytvořeno před {search}",
|
||||||
|
"fr": "Créée avant le {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "opened_after",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "date_created>{search}",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search",
|
||||||
|
"type": "date"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Created after {search}",
|
||||||
|
"nl": "Aangemaakt na {search}",
|
||||||
|
"de": "Erstellt nach dem {search}",
|
||||||
|
"es": "Creada después de {search}",
|
||||||
|
"ca": "Creada després de {search}",
|
||||||
|
"cs": "Vytvořeno po {search}",
|
||||||
|
"fr": "Créée après le {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "last_edited_before",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_last_change_date<{search}",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search",
|
||||||
|
"type": "date"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Last edited before {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "last_edited_after",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": "_last_change_date>{search}",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "search",
|
||||||
|
"type": "date"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"question": {
|
||||||
|
"en": "Last edited after {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"allowMove": false
|
"allowMove": false
|
||||||
|
|
|
@ -551,6 +551,31 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "scalebar",
|
||||||
|
"question": {
|
||||||
|
"en": "Should a scale bar be shown on the map?",
|
||||||
|
"nl": "Moet er een schaalbalk weergegeven worden?"
|
||||||
|
},
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "mapcomplete-preference-show-scale=true",
|
||||||
|
"then": {
|
||||||
|
"en": "Show the scalebar",
|
||||||
|
"nl": "Toon de schaalbalk"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "mapcomplete-preference-show-scale=false",
|
||||||
|
"alsoShowIf": "mapcomplete-preference-show-scale=",
|
||||||
|
|
||||||
|
"then": {
|
||||||
|
"en": "Hide the scalebar",
|
||||||
|
"nl": "Verberg de schaalbalk"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "title-editing",
|
"id": "title-editing",
|
||||||
"render": {
|
"render": {
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
inkscape:current-layer="svg1" />
|
inkscape:current-layer="svg1" />
|
||||||
<path
|
<path
|
||||||
style="fill:#000000"
|
style="fill:#000000;"
|
||||||
class="selectable"
|
class="selectable"
|
||||||
d="M 375,187.5 C 375,291.05469 291.05469,375 187.5,375 83.945312,375 0,291.05469 0,187.5 0,83.945312 83.945312,0 187.5,0 291.05469,0 375,83.945312 375,187.5 Z m 0,0"
|
d="M 375,187.5 C 375,291.05469 291.05469,375 187.5,375 83.945312,375 0,291.05469 0,187.5 0,83.945312 83.945312,0 187.5,0 291.05469,0 375,83.945312 375,187.5 Z m 0,0"
|
||||||
id="path1" />
|
id="path1" />
|
||||||
|
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -1,101 +1,55 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
version="1.0"
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
width="860.50732pt"
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
height="860.50732pt"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
viewBox="0 0 860.50732 860.50732"
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
preserveAspectRatio="xMidYMid meet"
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
id="svg14"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
version="1.0"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="860.50732pt"
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
height="860.50732pt"
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
viewBox="0 0 860.50732 860.50732"
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
preserveAspectRatio="xMidYMid meet"
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
id="svg14"
|
<defs
|
||||||
sodipodi:docname="direction_gradient.svg"
|
id="defs18">
|
||||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
<linearGradient
|
||||||
<defs
|
id="linearGradient832">
|
||||||
id="defs18">
|
<stop
|
||||||
<linearGradient
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
inkscape:collect="always"
|
offset="0"
|
||||||
id="linearGradient832">
|
id="stop828" />
|
||||||
<stop
|
<stop
|
||||||
style="stop-color:#000000;stop-opacity:1;"
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
offset="0"
|
offset="1"
|
||||||
id="stop828"/>
|
id="stop830" />
|
||||||
<stop
|
</linearGradient>
|
||||||
style="stop-color:#000000;stop-opacity:0;"
|
<radialGradient
|
||||||
offset="1"
|
xlink:href="#linearGradient832"
|
||||||
id="stop830"/>
|
id="radialGradient838"
|
||||||
</linearGradient>
|
cx="430.25363"
|
||||||
<radialGradient
|
cy="519.61188"
|
||||||
inkscape:collect="always"
|
fx="430.25363"
|
||||||
xlink:href="#linearGradient832"
|
fy="519.61188"
|
||||||
id="radialGradient838"
|
r="305.54589"
|
||||||
cx="430.25363"
|
gradientTransform="matrix(0.95288409,-0.94890664,0.94542304,0.94938587,-470.98122,345.21193)"
|
||||||
cy="519.61188"
|
gradientUnits="userSpaceOnUse" />
|
||||||
fx="430.25363"
|
</defs>
|
||||||
fy="519.61188"
|
<metadata
|
||||||
r="305.54589"
|
id="metadata2">
|
||||||
gradientTransform="matrix(0.95288409,-0.94890664,0.94542304,0.94938587,-470.98122,345.21193)"
|
|
||||||
gradientUnits="userSpaceOnUse"/>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1"
|
|
||||||
objecttolerance="10"
|
|
||||||
gridtolerance="10"
|
|
||||||
guidetolerance="10"
|
|
||||||
inkscape:pageopacity="0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="999"
|
|
||||||
id="namedview16"
|
|
||||||
showgrid="false"
|
|
||||||
showguides="true"
|
|
||||||
inkscape:guide-bbox="true"
|
|
||||||
inkscape:zoom="0.70710678"
|
|
||||||
inkscape:cx="279.00239"
|
|
||||||
inkscape:cy="856.75313"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg14">
|
|
||||||
<sodipodi:guide
|
|
||||||
position="430.25363,862.49682"
|
|
||||||
orientation="1,0"
|
|
||||||
id="guide832"
|
|
||||||
inkscape:locked="false"/>
|
|
||||||
<sodipodi:guide
|
|
||||||
position="-42.427977,430.25368"
|
|
||||||
orientation="0,1"
|
|
||||||
id="guide834"
|
|
||||||
inkscape:locked="false"/>
|
|
||||||
<sodipodi:guide
|
|
||||||
position="398.27788,720.18823"
|
|
||||||
orientation="0,1"
|
|
||||||
id="guide840"
|
|
||||||
inkscape:locked="false"/>
|
|
||||||
</sodipodi:namedview>
|
|
||||||
<metadata
|
|
||||||
id="metadata2">
|
|
||||||
Created by potrace 1.15, written by Peter Selinger 2001-2017
|
Created by potrace 1.15, written by Peter Selinger 2001-2017
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
<cc:Work
|
<cc:Work
|
||||||
rdf:about="">
|
rdf:about="">
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title/>
|
</cc:Work>
|
||||||
</cc:Work>
|
</rdf:RDF>
|
||||||
</rdf:RDF>
|
</metadata>
|
||||||
</metadata>
|
<path
|
||||||
<path
|
style="fill:url(#radialGradient838);fill-opacity:1;stroke:none;stroke-width:2.83464575;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
style="fill:url(#radialGradient838);fill-opacity:1;stroke:none;stroke-width:2.83464575;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
d="M 735.79979,124.70799 C 654.79116,43.598883 544.88842,-2.0206645 430.25389,-2.121103 315.61937,-2.0206592 205.71663,43.598888 124.70801,124.70799 l 305.54588,305.54589 z"
|
||||||
d="M 735.79979,124.70799 C 654.79116,43.598883 544.88842,-2.0206645 430.25389,-2.121103 315.61937,-2.0206592 205.71663,43.598888 124.70801,124.70799 l 305.54588,305.54589 z"
|
id="path836" />
|
||||||
id="path836"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccc"/>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -1,2 +1,2 @@
|
||||||
SPDX-FileCopyrightText: Pieter Vander Vennet
|
SPDX-FileCopyrightText: Pieter Vander Vennet
|
||||||
SPDX-License-Identifier: CC0
|
SPDX-License-Identifier: CC0-1.0
|
|
@ -234,7 +234,7 @@
|
||||||
{
|
{
|
||||||
"id": "nearby_images",
|
"id": "nearby_images",
|
||||||
"render": {
|
"render": {
|
||||||
"*": "{nearby_images(open,readonly)}"
|
"*": "{nearby_images(,readonly)}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -643,7 +643,8 @@
|
||||||
"pointIsMoved": "Der Punkt wurde verschoben",
|
"pointIsMoved": "Der Punkt wurde verschoben",
|
||||||
"reasons": {
|
"reasons": {
|
||||||
"reasonInaccurate": "Der Standort ist um ein paar Meter ungenau",
|
"reasonInaccurate": "Der Standort ist um ein paar Meter ungenau",
|
||||||
"reasonRelocation": "Das Element wurde an einen völlig anderen Ort verlegt"
|
"reasonRelocation": "Das Element wurde an einen völlig anderen Ort verlegt",
|
||||||
|
"reasonSnapTo": "Dies sollte auf {name} fixiert werden"
|
||||||
},
|
},
|
||||||
"selectReason": "Warum verschieben Sie dieses Element?",
|
"selectReason": "Warum verschieben Sie dieses Element?",
|
||||||
"whyMove": "Warum wollen Sie diesen Punkt verschieben?",
|
"whyMove": "Warum wollen Sie diesen Punkt verschieben?",
|
||||||
|
@ -778,6 +779,14 @@
|
||||||
"missing": "{count} nicht übersetzte Zeichenfolgen",
|
"missing": "{count} nicht übersetzte Zeichenfolgen",
|
||||||
"notImmediate": "Die Übersetzung wird nicht direkt aktualisiert. Dies dauert in der Regel ein paar Tage"
|
"notImmediate": "Die Übersetzung wird nicht direkt aktualisiert. Dies dauert in der Regel ein paar Tage"
|
||||||
},
|
},
|
||||||
|
"unknown": {
|
||||||
|
"clear": "Antwort löschen",
|
||||||
|
"explanation": "Lösche dieses Informationsmerkmal, wenn die aktuelle Antwort falsch ist, aber der tatsächliche Wert nicht bekannt ist. Andere Informationen werden nicht entfernt.",
|
||||||
|
"keep": "Antwort behalten",
|
||||||
|
"markUnknown": "Als unbekannt markieren",
|
||||||
|
"removedKeys": "Die folgenden Einträge werden entfernt:",
|
||||||
|
"title": "Als unbekannt markieren?"
|
||||||
|
},
|
||||||
"userinfo": {
|
"userinfo": {
|
||||||
"gotoInbox": "Deinen Posteingang öffnen",
|
"gotoInbox": "Deinen Posteingang öffnen",
|
||||||
"gotoSettings": "Einstellungen auf OpenStreetMap.org öffnen",
|
"gotoSettings": "Einstellungen auf OpenStreetMap.org öffnen",
|
||||||
|
@ -864,4 +873,4 @@
|
||||||
"startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt"
|
"startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3926,10 +3926,10 @@
|
||||||
"Cuisine": {
|
"Cuisine": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "Això és una pizzeria"
|
"then": "Pizzeria"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "Això és una fregiduria"
|
"then": "Fregiduria"
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"then": "Aquí es serveixen plats xinesos"
|
"then": "Aquí es serveixen plats xinesos"
|
||||||
|
@ -3953,7 +3953,7 @@
|
||||||
"then": "Aquesta és una botiga de kebabs"
|
"then": "Aquesta és una botiga de kebabs"
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"then": "Això és una botiga d'entrepans"
|
"then": "Botiga d'entrepans"
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"then": "Aquí es serveixen hamburgueses"
|
"then": "Aquí es serveixen hamburgueses"
|
||||||
|
@ -5126,18 +5126,32 @@
|
||||||
"0": {
|
"0": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Has de mencionar {search} en el primer comentari"
|
"question": "Sols mostrar les notes obertes per contribuïdors anònims"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "<b>No</b> s'ha de mencionar {search} al primer comentari"
|
"question": "Sols mostra les notes obertes"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"10": {
|
"11": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Creada abans de {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Creada després de {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Totes les notes"
|
"question": "Totes les notes"
|
||||||
|
@ -5150,59 +5164,38 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Obert pel contribuïdor {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
"3": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "<b>No</b> obert pel contribuïdor {search}"
|
"question": "Has de mencionar {search} en el primer comentari"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Editat per última vega pel contribuïdor {search}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Oberta després de {search}"
|
"question": "<b>No</b> s'ha de mencionar {search} al primer comentari"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Creada abans de {search}"
|
"question": "Obert pel contribuïdor {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Creada després de {search}"
|
"question": "<b>No</b> obert pel contribuïdor {search}"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Sols mostrar les notes obertes per contribuïdors anònims"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Sols mostra les notes obertes"
|
"question": "Editat per última vega pel contribuïdor {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4072,10 +4072,10 @@
|
||||||
"Cuisine": {
|
"Cuisine": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "Tohle je pizzerie"
|
"then": "Pizzerie"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "Tohle je hranolkárna"
|
"then": "Hranolkárna"
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"then": "Podávají se zde čínské pokrmy"
|
"then": "Podávají se zde čínské pokrmy"
|
||||||
|
@ -5352,18 +5352,32 @@
|
||||||
"0": {
|
"0": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Měl by se zmínit {search} v prvním komentáři"
|
"question": "Zobrazovat pouze poznámky otevřené anonymním přispěvatelem"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "V prvním komentáři by jste <b>neměli</b> zmiňovat {search}"
|
"question": "Zobrazit pouze otevřené poznámky"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"10": {
|
"11": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Vytvořeno před {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Vytvořeno po {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Všechny poznámky"
|
"question": "Všechny poznámky"
|
||||||
|
@ -5376,59 +5390,38 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Otevřeno přispěvatelem {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
"3": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "<b>Není</b> otevřeno přispěvatelem {search}"
|
"question": "Měl by se zmínit {search} v prvním komentáři"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Naposledy upravil přispěvatel {search}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Otevřeno po {search}"
|
"question": "V prvním komentáři by jste <b>neměli</b> zmiňovat {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Vytvořeno před {search}"
|
"question": "Otevřeno přispěvatelem {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Vytvořeno po {search}"
|
"question": "<b>Není</b> otevřeno přispěvatelem {search}"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Zobrazovat pouze poznámky otevřené anonymním přispěvatelem"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Zobrazit pouze otevřené poznámky"
|
"question": "Naposledy upravil přispěvatel {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1640,7 +1640,7 @@
|
||||||
},
|
},
|
||||||
"note": {
|
"note": {
|
||||||
"filter": {
|
"filter": {
|
||||||
"4": {
|
"9": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Senest redigeret af bidragsyder {search}"
|
"question": "Senest redigeret af bidragsyder {search}"
|
||||||
|
|
|
@ -5147,10 +5147,10 @@
|
||||||
"Cuisine": {
|
"Cuisine": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "Dies ist eine Pizzeria"
|
"then": "Pizzeria"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "Dies ist eine Pommesbude"
|
"then": "Pommesbude"
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"then": "Hier werden chinesische Gerichte serviert"
|
"then": "Hier werden chinesische Gerichte serviert"
|
||||||
|
@ -5171,13 +5171,10 @@
|
||||||
"then": "Bietet vorwiegend Pastagerichte an"
|
"then": "Bietet vorwiegend Pastagerichte an"
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"then": "Das ist ein Dönerladen"
|
"then": "Dönerladen"
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"then": "Dies ist ein Sandwichladen"
|
"then": "Sandwichladen"
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"then": "Hier werden Burger serviert"
|
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"then": "Hier wird Sushi serviert"
|
"then": "Hier wird Sushi serviert"
|
||||||
|
@ -6769,18 +6766,32 @@
|
||||||
"0": {
|
"0": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Sollte {search} im ersten Kommentar erwähnen"
|
"question": "Nur Notizen anzeigen, die anonym erstellt wurden"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Sollte <b>nicht</b> {search} im ersten Kommentar erwähnen"
|
"question": "Nur offene Notizen anzeigen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"10": {
|
"11": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Erstellt vor dem {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Erstellt nach dem {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Alle Notizen"
|
"question": "Alle Notizen"
|
||||||
|
@ -6793,59 +6804,38 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Erstellt von {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
"3": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "<b>Nicht</b> erstellt von {search}"
|
"question": "Sollte {search} im ersten Kommentar erwähnen"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Zuletzt bearbeitet von {search}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Zuletzt bearbeitet nach dem {search}"
|
"question": "Sollte <b>nicht</b> {search} im ersten Kommentar erwähnen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Erstellt vor dem {search}"
|
"question": "Erstellt von {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Erstellt nach dem {search}"
|
"question": "<b>Nicht</b> erstellt von {search}"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Nur Notizen anzeigen, die anonym erstellt wurden"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Nur offene Notizen anzeigen"
|
"question": "Zuletzt bearbeitet von {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5149,25 +5149,25 @@
|
||||||
"Cuisine": {
|
"Cuisine": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "This is a pizzeria"
|
"then": "Pizzeria"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "This is a friture"
|
"then": "Friture"
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"then": "Chinese dishes are served here"
|
"then": "Chinese"
|
||||||
},
|
},
|
||||||
"11": {
|
"11": {
|
||||||
"then": "Greek dishes are served here"
|
"then": "Greek"
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"then": "Indian dishes are served here"
|
"then": "Indian"
|
||||||
},
|
},
|
||||||
"13": {
|
"13": {
|
||||||
"then": "Turkish dishes are served here"
|
"then": "Turkish restaurant"
|
||||||
},
|
},
|
||||||
"14": {
|
"14": {
|
||||||
"then": "Thai dishes are served here"
|
"then": "Thai restaurant"
|
||||||
},
|
},
|
||||||
"15": {
|
"15": {
|
||||||
"then": "Mexican dishes are served here"
|
"then": "Mexican dishes are served here"
|
||||||
|
@ -5182,28 +5182,28 @@
|
||||||
"then": "Seafood dishes are served here"
|
"then": "Seafood dishes are served here"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"then": "Mainly serves pasta"
|
"then": "Serves mainly pasta"
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"then": "This is kebab shop"
|
"then": "Kebab shop"
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"then": "This is a sandwich shop"
|
"then": "Sandwich shop"
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"then": "Burgers are served here"
|
"then": "Burgersrestaurant"
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"then": "Sushi is served here"
|
"then": "Sushi restaurant"
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"then": "Coffee is served here"
|
"then": "Coffeebar"
|
||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"then": "This is an Italian restaurant (which serves more than pasta and pizza)"
|
"then": "Italian restaurant (which serves more than pasta and pizza)"
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"then": "French dishes are served here"
|
"then": "French restaurant"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "What kind of food is served here?",
|
"question": "What kind of food is served here?",
|
||||||
|
@ -6791,18 +6791,53 @@
|
||||||
"0": {
|
"0": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Should mention {search} in the first comment"
|
"question": "Only show notes opened by an anonymous contributor"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Should <b>not</b> mention {search} in the first comment"
|
"question": "Only show open notes"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Not edited as last by {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Created before {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Created after {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Last edited before {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Last edited after {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "All Notes"
|
"question": "All Notes"
|
||||||
|
@ -6815,59 +6850,52 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Opened by contributor {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
"3": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "<b>Not</b> opened by contributor {search}"
|
"question": "Should mention {search} in the first comment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Last edited by contributor {search}"
|
"question": "Should mention {search} in any comment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Opened after {search}"
|
"question": "Should <b>not</b> mention {search} in the first comment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Created before {search}"
|
"question": "Opened by contributor {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Created after {search}"
|
"question": "<b>Not</b> opened by contributor {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Only show notes opened by an anonymous contributor"
|
"question": "Edited or commented on by any user with name {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Only show open notes"
|
"question": "Last edited by contributor {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11614,6 +11642,17 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"scalebar": {
|
||||||
|
"mappings": {
|
||||||
|
"0": {
|
||||||
|
"then": "Show the scalebar"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"then": "Hide the scalebar"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"question": "Should a scale bar be shown on the map?"
|
||||||
|
},
|
||||||
"settings-link": {
|
"settings-link": {
|
||||||
"render": {
|
"render": {
|
||||||
"special": {
|
"special": {
|
||||||
|
|
|
@ -2707,7 +2707,7 @@
|
||||||
"Cuisine": {
|
"Cuisine": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "Esto es una pizzería"
|
"then": "Pizzería"
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"then": "Aquí se sirven platos Chinos"
|
"then": "Aquí se sirven platos Chinos"
|
||||||
|
@ -2725,10 +2725,10 @@
|
||||||
"then": "Principalmente sirve pasta"
|
"then": "Principalmente sirve pasta"
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"then": "Esta es una tienda de kebak"
|
"then": "Tienda de kebak"
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"then": "Aquí se sirven hamburguesas"
|
"then": "Hamburguesas"
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"then": "Aquí se sirve sushi"
|
"then": "Aquí se sirve sushi"
|
||||||
|
@ -3135,18 +3135,32 @@
|
||||||
"0": {
|
"0": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Debe mencionar {search} en el primer comentario"
|
"question": "Solo mostrar las notas abiertas por contributores anómimos"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "<b>No</b> debe mencionar {search} en el primer comentario"
|
"question": "Solo mostrar las notas abiertas"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"10": {
|
"11": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Creada antes de {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Creada después de {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Todas las notas"
|
"question": "Todas las notas"
|
||||||
|
@ -3159,59 +3173,38 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Abierto por el contributor {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
"3": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "<b>No</b> abierto por el contributor {search}"
|
"question": "Debe mencionar {search} en el primer comentario"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Editada por última vez por el contributor {search}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Abierta después de {search}"
|
"question": "<b>No</b> debe mencionar {search} en el primer comentario"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Creada antes de {search}"
|
"question": "Abierto por el contributor {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Creada después de {search}"
|
"question": "<b>No</b> abierto por el contributor {search}"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Solo mostrar las notas abiertas por contributores anómimos"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Solo mostrar las notas abiertas"
|
"question": "Editada por última vez por el contributor {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3560,10 +3560,10 @@
|
||||||
"Cuisine": {
|
"Cuisine": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "C'est une pizzéria"
|
"then": "Pizzéria"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "C'est une friterie"
|
"then": "Friterie"
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"then": "Des plats chinois sont servis ici"
|
"then": "Des plats chinois sont servis ici"
|
||||||
|
@ -3584,10 +3584,10 @@
|
||||||
"then": "Restaurant Italien"
|
"then": "Restaurant Italien"
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"then": "C'est un resto kebab"
|
"then": "Resto kebab"
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"then": "C'est une sandwicherie"
|
"then": "Sandwicherie"
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"then": "Des hamburgers sont servis ici"
|
"then": "Des hamburgers sont servis ici"
|
||||||
|
@ -4425,68 +4425,61 @@
|
||||||
},
|
},
|
||||||
"note": {
|
"note": {
|
||||||
"filter": {
|
"filter": {
|
||||||
"10": {
|
"0": {
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Toutes les notes"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Ouverte par {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "<b>Exclure</b>les notes ouvertes par {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Dernière modification par {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Ouverte après le {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"6": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Créée avant le {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"7": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Créée après le {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Montrer uniquement les notes ouvertes par un contributeur anonyme"
|
"question": "Montrer uniquement les notes ouvertes par un contributeur anonyme"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"9": {
|
"1": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Montrer uniquement les notes ouvertes"
|
"question": "Montrer uniquement les notes ouvertes"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Créée avant le {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Créée après le {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Toutes les notes"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Ouverte par {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "<b>Exclure</b>les notes ouvertes par {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Dernière modification par {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "Notes OpenStreetMap",
|
"name": "Notes OpenStreetMap",
|
||||||
|
|
|
@ -4289,25 +4289,25 @@
|
||||||
"Cuisine": {
|
"Cuisine": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "Dit is een pizzeria"
|
"then": "Pizzeria"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "Dit is een frituur"
|
"then": "Frituur"
|
||||||
},
|
},
|
||||||
"10": {
|
"10": {
|
||||||
"then": "Dit is een Chinees restaurant"
|
"then": "Chinees restaurant"
|
||||||
},
|
},
|
||||||
"11": {
|
"11": {
|
||||||
"then": "Dit is een Grieks restaurant"
|
"then": "Grieks restaurant"
|
||||||
},
|
},
|
||||||
"12": {
|
"12": {
|
||||||
"then": "Dit is een Indisch restaurant"
|
"then": "Indisch restaurant"
|
||||||
},
|
},
|
||||||
"13": {
|
"13": {
|
||||||
"then": "Dit is een Turks restaurant (dat meer dan enkel kebab verkoopt)"
|
"then": "Turks restaurant"
|
||||||
},
|
},
|
||||||
"14": {
|
"14": {
|
||||||
"then": "Dit is een Thaïs restaurant"
|
"then": "Thaïs restaurant"
|
||||||
},
|
},
|
||||||
"15": {
|
"15": {
|
||||||
"then": "Dit is een mexicaans restaurant"
|
"then": "Dit is een mexicaans restaurant"
|
||||||
|
@ -4322,28 +4322,28 @@
|
||||||
"then": "Dit is een vis- en zeerestaurant"
|
"then": "Dit is een vis- en zeerestaurant"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"then": "Dit is een pastazaak"
|
"then": "Pastazaak"
|
||||||
},
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"then": "Dit is een kebabzaak"
|
"then": "Kebabzaak"
|
||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"then": "Dit is een broodjeszaak"
|
"then": "Broodjeszaak"
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"then": "Dit is een hamburgerrestaurant"
|
"then": "Hamburgerrestaurant"
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"then": "Dit is een sushirestaurant"
|
"then": "Sushirestaurant"
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"then": "Dit is een koffiezaak"
|
"then": "Koffiezaak"
|
||||||
},
|
},
|
||||||
"8": {
|
"8": {
|
||||||
"then": "Dit is een Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)"
|
"then": "Italiaans restaurant (dat meer dan enkel pasta of pizza verkoopt)"
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"then": "Dit is een Frans restaurant"
|
"then": "Frans restaurant"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Welk soort gerechten worden hier geserveerd?",
|
"question": "Welk soort gerechten worden hier geserveerd?",
|
||||||
|
@ -5555,18 +5555,32 @@
|
||||||
"0": {
|
"0": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Moet in de eerste opmerking \"{search}\" bevatten"
|
"question": "Toon enkel de Notes geopend door een anonieme bijdrager"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Mag in de eerste opmerking <b>niet</b> \"{search}\" bevatten"
|
"question": "Toon enkel open Notes"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"10": {
|
"11": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Aangemaakt voor {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Aangemaakt na {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Alle Notes"
|
"question": "Alle Notes"
|
||||||
|
@ -5579,59 +5593,38 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Geopend door bijdrager {search}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3": {
|
"3": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "<b>Niet</b> geopend door bijdrager {search}"
|
"question": "Moet in de eerste opmerking \"{search}\" bevatten"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Laatst bewerkt door bijdrager {search}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Geopend na {search}"
|
"question": "Mag in de eerste opmerking <b>niet</b> \"{search}\" bevatten"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Aangemaakt voor {search}"
|
"question": "Geopend door bijdrager {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"7": {
|
"7": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Aangemaakt na {search}"
|
"question": "<b>Niet</b> geopend door bijdrager {search}"
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Toon enkel de Notes geopend door een anonieme bijdrager"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
"question": "Toon enkel open Notes"
|
"question": "Laatst bewerkt door bijdrager {search}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9276,6 +9269,17 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"scalebar": {
|
||||||
|
"mappings": {
|
||||||
|
"0": {
|
||||||
|
"then": "Toon de schaalbalk"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"then": "Verberg de schaalbalk"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"question": "Moet er een schaalbalk weergegeven worden?"
|
||||||
|
},
|
||||||
"settings-link": {
|
"settings-link": {
|
||||||
"render": {
|
"render": {
|
||||||
"special": {
|
"special": {
|
||||||
|
|
|
@ -1998,7 +1998,7 @@
|
||||||
"Cuisine": {
|
"Cuisine": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "To jest pizzeria"
|
"then": "Pizzeria"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"then": "Podaje głównie makarony"
|
"then": "Podaje głównie makarony"
|
||||||
|
|
|
@ -808,6 +808,133 @@
|
||||||
"description": "Leuchttürme sind hohe Gebäude mit einem Licht an der Spitze, das den Schiffsverkehr leitet.",
|
"description": "Leuchttürme sind hohe Gebäude mit einem Licht an der Spitze, das den Schiffsverkehr leitet.",
|
||||||
"title": "Leuchttürme"
|
"title": "Leuchttürme"
|
||||||
},
|
},
|
||||||
|
"mapcomplete-changes": {
|
||||||
|
"description": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen",
|
||||||
|
"layers": {
|
||||||
|
"0": {
|
||||||
|
"description": "Zeigt alle MapComplete-Änderungen",
|
||||||
|
"filter": {
|
||||||
|
"0": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Themenname enthält {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Themename enthält <b>nicht</b> {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Etymologie-Thema ausschließen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Erstellt von Mitwirkendem {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "<b>Nicht</b> erstellt von Mitwirkendem {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Erstellt vor {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Erstellt nach {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Benutzersprache (ISO-Code) {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Erstellt mit Host {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Changeset hat mindestens ein Bild hinzugefügt"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "GRB-Thema ausschließen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "Changeset-Zentren",
|
||||||
|
"tagRenderings": {
|
||||||
|
"contributor": {
|
||||||
|
"question": "Wer hat zu dieser Änderung beigetragen?",
|
||||||
|
"render": "Änderung vorgenommen von <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
|
||||||
|
},
|
||||||
|
"host": {
|
||||||
|
"question": "Bei welchem Host (Website) wurde diese Änderung vorgenommen?",
|
||||||
|
"render": "Änderung mit <a href='{host}'>{host}</a>"
|
||||||
|
},
|
||||||
|
"locale": {
|
||||||
|
"question": "In welcher Sprache (Locale) wurde diese Änderung vorgenommen?",
|
||||||
|
"render": "Die Benutzersprache ist {locale}"
|
||||||
|
},
|
||||||
|
"show_changeset_id": {
|
||||||
|
"render": "Änderungssatz <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
|
||||||
|
},
|
||||||
|
"theme-id": {
|
||||||
|
"question": "Welches Thema wurde für diese Änderung verwendet?",
|
||||||
|
"render": "Änderung mit Thema <a href='https://mapcomplete.org/{theme}'>{theme}</a>"
|
||||||
|
},
|
||||||
|
"version": {
|
||||||
|
"question": "Welche Version von MapComplete wurde verwendet, um diese Änderung vorzunehmen?",
|
||||||
|
"render": "Erstellt mit {editor}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"render": "Änderungssatz für {theme}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"override": {
|
||||||
|
"tagRenderings+": {
|
||||||
|
"0": {
|
||||||
|
"render": "Weitere Statistiken findest du <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>hier</a>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shortDescription": "Zeigt die von MapComplete vorgenommenen Änderungen an",
|
||||||
|
"title": "Änderungen mit MapComplete"
|
||||||
|
},
|
||||||
"maproulette": {
|
"maproulette": {
|
||||||
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
|
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
|
||||||
"title": "MapRoulette-Aufgaben"
|
"title": "MapRoulette-Aufgaben"
|
||||||
|
@ -1347,4 +1474,4 @@
|
||||||
"shortDescription": "Eine Karte mit Abfalleimern",
|
"shortDescription": "Eine Karte mit Abfalleimern",
|
||||||
"title": "Abfalleimer"
|
"title": "Abfalleimer"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
2541
package-lock.json
generated
2541
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "mapcomplete",
|
"name": "mapcomplete",
|
||||||
"version": "0.47.0",
|
"version": "0.46.8",
|
||||||
"repository": "https://github.com/pietervdvn/MapComplete",
|
"repository": "https://github.com/pietervdvn/MapComplete",
|
||||||
"description": "A small website to edit OSM easily",
|
"description": "A small website to edit OSM easily",
|
||||||
"bugs": "https://github.com/pietervdvn/MapComplete/issues",
|
"bugs": "https://github.com/pietervdvn/MapComplete/issues",
|
||||||
|
@ -123,6 +123,10 @@
|
||||||
"reuse-compliance": "reuse lint",
|
"reuse-compliance": "reuse lint",
|
||||||
"housekeeping": "git pull && npx update-browserslist-db@latest && npm run weblate:merge-heavy && npm run generate && npm run generate:docs && npm run generate:schemas && npm run generate:contributor-list && vite-node scripts/fetchLanguages.ts && vite-node scripts/generateSunnyUnlabeled.ts && npm run format && git add assets/ langs/ Docs/ **/*.ts Docs/* src/* && git commit -m 'chore: automated housekeeping...'",
|
"housekeeping": "git pull && npx update-browserslist-db@latest && npm run weblate:merge-heavy && npm run generate && npm run generate:docs && npm run generate:schemas && npm run generate:contributor-list && vite-node scripts/fetchLanguages.ts && vite-node scripts/generateSunnyUnlabeled.ts && npm run format && git add assets/ langs/ Docs/ **/*.ts Docs/* src/* && git commit -m 'chore: automated housekeeping...'",
|
||||||
"###": "MICROSERVICES AND SERVER MAINTAINENCE",
|
"###": "MICROSERVICES AND SERVER MAINTAINENCE",
|
||||||
|
"release": "standard-version",
|
||||||
|
"release:minor": "standard-version --release-as minor",
|
||||||
|
"release:patch": "standard-version --release-as patch",
|
||||||
|
"release:major": "standard-version --release-as major",
|
||||||
"server:summary": "vite-node scripts/osm2pgsql/tilecountServer.ts",
|
"server:summary": "vite-node scripts/osm2pgsql/tilecountServer.ts",
|
||||||
"server:ldjson": "vite-node scripts/serverLdScrape.ts",
|
"server:ldjson": "vite-node scripts/serverLdScrape.ts",
|
||||||
"server:studio": "vite-node scripts/studioServer -- /root/git/MapComplete/assets",
|
"server:studio": "vite-node scripts/studioServer -- /root/git/MapComplete/assets",
|
||||||
|
@ -252,6 +256,7 @@
|
||||||
"read-file": "^0.2.0",
|
"read-file": "^0.2.0",
|
||||||
"sass": "^1.58.0",
|
"sass": "^1.58.0",
|
||||||
"sharp": "^0.32.6",
|
"sharp": "^0.32.6",
|
||||||
|
"standard-version": "^9.5.0",
|
||||||
"svelte": "^3.55.1",
|
"svelte": "^3.55.1",
|
||||||
"svelte-check": "^3.0.2",
|
"svelte-check": "^3.0.2",
|
||||||
"svelte-preprocess": "^5.0.1",
|
"svelte-preprocess": "^5.0.1",
|
||||||
|
|
|
@ -1769,14 +1769,14 @@ input[type="range"].range-lg::-moz-range-thumb {
|
||||||
height: 3.5rem;
|
height: 3.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h-16 {
|
|
||||||
height: 4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.h-48 {
|
.h-48 {
|
||||||
height: 12rem;
|
height: 12rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.h-16 {
|
||||||
|
height: 4rem;
|
||||||
|
}
|
||||||
|
|
||||||
.h-40 {
|
.h-40 {
|
||||||
height: 10rem;
|
height: 10rem;
|
||||||
}
|
}
|
||||||
|
@ -4040,6 +4040,10 @@ input[type="range"].range-lg::-moz-range-thumb {
|
||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pt-2 {
|
||||||
|
padding-top: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.pl-1 {
|
.pl-1 {
|
||||||
padding-left: 0.25rem;
|
padding-left: 0.25rem;
|
||||||
}
|
}
|
||||||
|
@ -4723,11 +4727,6 @@ input[type="range"].range-lg::-moz-range-thumb {
|
||||||
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||||
}
|
}
|
||||||
|
|
||||||
.shadow-transparent {
|
|
||||||
--tw-shadow-color: transparent;
|
|
||||||
--tw-shadow: var(--tw-shadow-colored);
|
|
||||||
}
|
|
||||||
|
|
||||||
.shadow-gray-300 {
|
.shadow-gray-300 {
|
||||||
--tw-shadow-color: #D1D5DB;
|
--tw-shadow-color: #D1D5DB;
|
||||||
--tw-shadow: var(--tw-shadow-colored);
|
--tw-shadow: var(--tw-shadow-colored);
|
||||||
|
@ -8153,6 +8152,10 @@ svg.apply-fill path {
|
||||||
height: 2.75rem;
|
height: 2.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sm\:h-32 {
|
||||||
|
height: 8rem;
|
||||||
|
}
|
||||||
|
|
||||||
.sm\:h-64 {
|
.sm\:h-64 {
|
||||||
height: 16rem;
|
height: 16rem;
|
||||||
}
|
}
|
||||||
|
@ -8346,6 +8349,10 @@ svg.apply-fill path {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.md\:h-64 {
|
||||||
|
height: 16rem;
|
||||||
|
}
|
||||||
|
|
||||||
.md\:h-auto {
|
.md\:h-auto {
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,14 +2,15 @@
|
||||||
|
|
||||||
# Creates various empty (stub) version of files
|
# Creates various empty (stub) version of files
|
||||||
|
|
||||||
mkdir -p ./src/assets/generated/layers;
|
mkdir -p ./src/assets/generated/layers
|
||||||
echo '{"themes":[]}' > ./src/assets/generated/known_themes.json
|
echo '{"themes":[]}' > ./src/assets/generated/known_themes.json
|
||||||
echo '{"layers": []}' > ./src/assets/generated/known_layers.json
|
echo '{"layers": []}' > ./src/assets/generated/known_layers.json
|
||||||
rm -f ./src/assets/generated/layers/*.json
|
rm -f ./src/assets/generated/layers/*.json
|
||||||
rm -f ./src/assets/generated/themes/*.json
|
rm -f ./src/assets/generated/themes/*.json
|
||||||
cp ./assets/layers/usersettings/usersettings.json ./src/assets/generated/layers/usersettings.json
|
cp ./assets/layers/usersettings/usersettings.json ./src/assets/generated/layers/usersettings.json
|
||||||
echo '{}' > ./src/assets/generated/layers/favourite.json
|
echo '{}' > ./src/assets/generated/layers/favourite.json
|
||||||
echo '{}' > ./src/assets/generated/layers/summary.json
|
echo '{}' > ./src/assets/generated/layers/summary.json
|
||||||
echo '{}' > ./src/assets/generated/layers/last_click.json
|
echo '{}' > ./src/assets/generated/layers/last_click.json
|
||||||
echo '{}' > ./src/assets/generated/layers/search.json
|
echo '{}' > ./src/assets/generated/layers/search.json
|
||||||
echo '[]' > ./src/assets/generated/theme_overview.json
|
echo '[]' > ./src/assets/generated/theme_overview.json
|
||||||
|
echo '{}' > ./src/assets/generated/layers/geocoded_image.json
|
||||||
|
|
|
@ -9,7 +9,14 @@ export interface ProvidedImage {
|
||||||
key: string
|
key: string
|
||||||
provider: ImageProvider
|
provider: ImageProvider
|
||||||
id: string
|
id: string
|
||||||
date?: Date
|
date?: Date,
|
||||||
|
/**
|
||||||
|
* Compass angle of the taken image
|
||||||
|
* 0 = north, 90° = East
|
||||||
|
*/
|
||||||
|
rotation?: number
|
||||||
|
lat?: number,
|
||||||
|
lon?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export default abstract class ImageProvider {
|
export default abstract class ImageProvider {
|
||||||
|
|
|
@ -162,12 +162,14 @@ export class Mapillary extends ImageProvider {
|
||||||
const metadataUrl =
|
const metadataUrl =
|
||||||
"https://graph.mapillary.com/" +
|
"https://graph.mapillary.com/" +
|
||||||
mapillaryId +
|
mapillaryId +
|
||||||
"?fields=thumb_1024_url,thumb_original_url,captured_at,creator&access_token=" +
|
"?fields=thumb_1024_url,thumb_original_url,captured_at,compass_angle,geometry,creator&access_token=" +
|
||||||
Constants.mapillary_client_token_v4
|
Constants.mapillary_client_token_v4
|
||||||
const response = await Utils.downloadJsonCached(metadataUrl, 60 * 60)
|
const response = await Utils.downloadJsonCached(metadataUrl, 60 * 60)
|
||||||
const url = <string>response["thumb_1024_url"]
|
const url = <string>response["thumb_1024_url"]
|
||||||
const url_hd = <string>response["thumb_original_url"]
|
const url_hd = <string>response["thumb_original_url"]
|
||||||
const date = new Date()
|
const date = new Date()
|
||||||
|
const rotation = (720 - Number(response["compass_angle"])) % 360
|
||||||
|
const geometry = response["geometry"]
|
||||||
date.setTime(response["captured_at"])
|
date.setTime(response["captured_at"])
|
||||||
return <ProvidedImage>{
|
return <ProvidedImage>{
|
||||||
id: "" + mapillaryId,
|
id: "" + mapillaryId,
|
||||||
|
@ -176,6 +178,9 @@ export class Mapillary extends ImageProvider {
|
||||||
provider: this,
|
provider: this,
|
||||||
date,
|
date,
|
||||||
key,
|
key,
|
||||||
|
rotation,
|
||||||
|
lat: geometry.coordinates[1],
|
||||||
|
lon: geometry.coordinates[0]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,11 +4,14 @@ import { WikimediaImageProvider } from "./WikimediaImageProvider"
|
||||||
import Wikidata from "../Web/Wikidata"
|
import Wikidata from "../Web/Wikidata"
|
||||||
import SvelteUIElement from "../../UI/Base/SvelteUIElement"
|
import SvelteUIElement from "../../UI/Base/SvelteUIElement"
|
||||||
import * as Wikidata_icon from "../../assets/svg/Wikidata.svelte"
|
import * as Wikidata_icon from "../../assets/svg/Wikidata.svelte"
|
||||||
|
import { Utils } from "../../Utils"
|
||||||
|
|
||||||
export class WikidataImageProvider extends ImageProvider {
|
export class WikidataImageProvider extends ImageProvider {
|
||||||
public static readonly singleton = new WikidataImageProvider()
|
public static readonly singleton = new WikidataImageProvider()
|
||||||
public readonly defaultKeyPrefixes = ["wikidata"]
|
public readonly defaultKeyPrefixes = ["wikidata"]
|
||||||
public readonly name = "Wikidata"
|
public readonly name = "Wikidata"
|
||||||
|
private static readonly keyBlacklist: ReadonlySet<string> = new Set(
|
||||||
|
["mapillary", ...Utils.Times(i => "mapillary:" + i, 10)])
|
||||||
|
|
||||||
private constructor() {
|
private constructor() {
|
||||||
super()
|
super()
|
||||||
|
@ -23,6 +26,9 @@ export class WikidataImageProvider extends ImageProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
public async ExtractUrls(key: string, value: string): Promise<Promise<ProvidedImage>[]> {
|
public async ExtractUrls(key: string, value: string): Promise<Promise<ProvidedImage>[]> {
|
||||||
|
if (WikidataImageProvider.keyBlacklist.has(key)) {
|
||||||
|
return []
|
||||||
|
}
|
||||||
const entity = await Wikidata.LoadWikidataEntryAsync(value)
|
const entity = await Wikidata.LoadWikidataEntryAsync(value)
|
||||||
if (entity === undefined) {
|
if (entity === undefined) {
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -164,6 +164,8 @@ export default class UserRelatedState {
|
||||||
"button" | "button_click_right" | "button_click" | "click" | "click_right"
|
"button" | "button_click_right" | "button_click" | "click" | "click_right"
|
||||||
>("button_click_right")
|
>("button_click_right")
|
||||||
|
|
||||||
|
public readonly showScale : UIEventSource<boolean>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Preferences as tags exposes many preferences and state properties as record.
|
* Preferences as tags exposes many preferences and state properties as record.
|
||||||
* This is used to bridge the internal state with the usersettings.json layerconfig file
|
* This is used to bridge the internal state with the usersettings.json layerconfig file
|
||||||
|
@ -209,6 +211,7 @@ export default class UserRelatedState {
|
||||||
"preferences-add-new-mode",
|
"preferences-add-new-mode",
|
||||||
"button_click_right",
|
"button_click_right",
|
||||||
)
|
)
|
||||||
|
this.showScale = UIEventSource.asBoolean(this.osmConnection.GetPreference("preference-show-scale","false"))
|
||||||
|
|
||||||
this.imageLicense = this.osmConnection.getPreference("pictures-license", "CC0")
|
this.imageLicense = this.osmConnection.getPreference("pictures-license", "CC0")
|
||||||
this.installedUserThemes = UserRelatedState.initInstalledUserThemes(osmConnection)
|
this.installedUserThemes = UserRelatedState.initInstalledUserThemes(osmConnection)
|
||||||
|
|
|
@ -56,7 +56,7 @@ export interface P4CPicture {
|
||||||
author?
|
author?
|
||||||
license?
|
license?
|
||||||
detailsUrl?: string
|
detailsUrl?: string
|
||||||
direction?
|
direction?: number,
|
||||||
osmTags?: object /*To copy straight into OSM!*/
|
osmTags?: object /*To copy straight into OSM!*/
|
||||||
thumbUrl: string
|
thumbUrl: string
|
||||||
details: {
|
details: {
|
||||||
|
|
|
@ -26,7 +26,8 @@ export default class Constants {
|
||||||
"last_click",
|
"last_click",
|
||||||
"favourite",
|
"favourite",
|
||||||
"summary",
|
"summary",
|
||||||
"search"
|
"search",
|
||||||
|
"geocoded_image"
|
||||||
] as const
|
] as const
|
||||||
/**
|
/**
|
||||||
* Special layers which are not included in a theme by default
|
* Special layers which are not included in a theme by default
|
||||||
|
|
|
@ -22,6 +22,7 @@ export interface MapProperties {
|
||||||
readonly lastClickLocation: Store<{ lon: number; lat: number }>
|
readonly lastClickLocation: Store<{ lon: number; lat: number }>
|
||||||
readonly allowZooming: UIEventSource<true | boolean>
|
readonly allowZooming: UIEventSource<true | boolean>
|
||||||
readonly useTerrain: Store<boolean>
|
readonly useTerrain: Store<boolean>
|
||||||
|
readonly showScale: UIEventSource<boolean>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Triggered when the user navigated by using the keyboard.
|
* Triggered when the user navigated by using the keyboard.
|
||||||
|
|
|
@ -722,7 +722,7 @@ export class ValidatePointRendering extends DesugaringStep<PointRenderingConfigJ
|
||||||
if (json.marker && !Array.isArray(json.marker)) {
|
if (json.marker && !Array.isArray(json.marker)) {
|
||||||
context.enter("marker").err("The marker in a pointRendering should be an array")
|
context.enter("marker").err("The marker in a pointRendering should be an array")
|
||||||
}
|
}
|
||||||
if (json.location.length == 0) {
|
if (!(json.location?.length > 0)) {
|
||||||
context
|
context
|
||||||
.enter("location")
|
.enter("location")
|
||||||
.err(
|
.err(
|
||||||
|
|
|
@ -9,6 +9,7 @@ import { QueryParameters } from "../../Logic/Web/QueryParameters"
|
||||||
import { Utils } from "../../Utils"
|
import { Utils } from "../../Utils"
|
||||||
import { RegexTag } from "../../Logic/Tags/RegexTag"
|
import { RegexTag } from "../../Logic/Tags/RegexTag"
|
||||||
import MarkdownUtils from "../../Utils/MarkdownUtils"
|
import MarkdownUtils from "../../Utils/MarkdownUtils"
|
||||||
|
import Validators, { ValidatorType } from "../../UI/InputElement/Validators"
|
||||||
|
|
||||||
export type FilterConfigOption = {
|
export type FilterConfigOption = {
|
||||||
question: Translation
|
question: Translation
|
||||||
|
@ -18,7 +19,7 @@ export type FilterConfigOption = {
|
||||||
osmTags: TagsFilter | undefined
|
osmTags: TagsFilter | undefined
|
||||||
/* Only set if fields are present. Used to create `osmTags` (which are used to _actually_ filter) when the field is written*/
|
/* Only set if fields are present. Used to create `osmTags` (which are used to _actually_ filter) when the field is written*/
|
||||||
readonly originalTagsSpec: TagConfigJson
|
readonly originalTagsSpec: TagConfigJson
|
||||||
fields: { name: string; type: string }[]
|
fields: { name: string; type: ValidatorType }[]
|
||||||
}
|
}
|
||||||
export default class FilterConfig {
|
export default class FilterConfig {
|
||||||
public readonly id: string
|
public readonly id: string
|
||||||
|
@ -58,8 +59,11 @@ export default class FilterConfig {
|
||||||
throw `Invalid filter: no question given at ${ctx}`
|
throw `Invalid filter: no question given at ${ctx}`
|
||||||
}
|
}
|
||||||
|
|
||||||
const fields: { name: string; type: string }[] = (option.fields ?? []).map((f, i) => {
|
const fields: { name: string; type: ValidatorType }[] = (option.fields ?? []).map((f, i) => {
|
||||||
const type = f.type ?? "string"
|
const type = <ValidatorType> f.type ?? "string"
|
||||||
|
if(Validators.availableTypes.indexOf(type) < 0){
|
||||||
|
throw `Invalid filter: type is not a valid validator. Did you mean one of ${Utils.sortedByLevenshteinDistance(type, <any>Validators.availableTypes, x => x).slice(0, 3)}`
|
||||||
|
}
|
||||||
// Type is validated against 'ValidatedTextField' in Validation.ts, in ValidateFilterConfig
|
// Type is validated against 'ValidatedTextField' in Validation.ts, in ValidateFilterConfig
|
||||||
if (f.name === undefined || f.name === "" || f.name.match(/[a-z0-9_-]+/) == null) {
|
if (f.name === undefined || f.name === "" || f.name.match(/[a-z0-9_-]+/) == null) {
|
||||||
throw `Invalid filter: a variable name should match [a-z0-9_-]+ at ${ctx}.fields[${i}]`
|
throw `Invalid filter: a variable name should match [a-z0-9_-]+ at ${ctx}.fields[${i}]`
|
||||||
|
|
|
@ -926,7 +926,7 @@ export default class TagRenderingConfig {
|
||||||
* Might give undefined if setting to unknown is not possible
|
* Might give undefined if setting to unknown is not possible
|
||||||
*/
|
*/
|
||||||
public removeToSetUnknown(partOfLayer: LayerConfig, currentTags: Record<string, string>): string[] | undefined {
|
public removeToSetUnknown(partOfLayer: LayerConfig, currentTags: Record<string, string>): string[] | undefined {
|
||||||
if(!partOfLayer?.source || !currentTags){
|
if (!partOfLayer?.source || !currentTags) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const toDelete = new Set<string>()
|
const toDelete = new Set<string>()
|
||||||
|
@ -1001,12 +1001,17 @@ export class TagRenderingConfigUtils {
|
||||||
// The original mappings get "priorityIf" set
|
// The original mappings get "priorityIf" set
|
||||||
const oldMappingsCloned =
|
const oldMappingsCloned =
|
||||||
clone.mappings?.map(
|
clone.mappings?.map(
|
||||||
(m) =>
|
(m) => {
|
||||||
<Mapping>{
|
const mapping = {
|
||||||
...m,
|
...m,
|
||||||
addExtraTags: [new Tag("nobrand", "")],
|
|
||||||
priorityIf: m.priorityIf ?? TagUtils.Tag("id~*"),
|
priorityIf: m.priorityIf ?? TagUtils.Tag("id~*"),
|
||||||
},
|
}
|
||||||
|
if (m.if.usedKeys().indexOf("nobrand") < 0) {
|
||||||
|
// Erase 'nobrand=yes', unless this option explicitly sets it
|
||||||
|
mapping["addExtraTags"] = [new Tag("nobrand", "")]
|
||||||
|
}
|
||||||
|
return <Mapping>mapping
|
||||||
|
},
|
||||||
) ?? []
|
) ?? []
|
||||||
clone.mappings = [...oldMappingsCloned, ...extraMappings]
|
clone.mappings = [...oldMappingsCloned, ...extraMappings]
|
||||||
return clone
|
return clone
|
||||||
|
|
|
@ -2,7 +2,11 @@ import LayoutConfig from "./ThemeConfig/LayoutConfig"
|
||||||
import { SpecialVisualizationState } from "../UI/SpecialVisualization"
|
import { SpecialVisualizationState } from "../UI/SpecialVisualization"
|
||||||
import { Changes } from "../Logic/Osm/Changes"
|
import { Changes } from "../Logic/Osm/Changes"
|
||||||
import { Store, UIEventSource } from "../Logic/UIEventSource"
|
import { Store, UIEventSource } from "../Logic/UIEventSource"
|
||||||
import { FeatureSource, IndexedFeatureSource, WritableFeatureSource } from "../Logic/FeatureSource/FeatureSource"
|
import {
|
||||||
|
FeatureSource,
|
||||||
|
IndexedFeatureSource,
|
||||||
|
WritableFeatureSource
|
||||||
|
} from "../Logic/FeatureSource/FeatureSource"
|
||||||
import { OsmConnection } from "../Logic/Osm/OsmConnection"
|
import { OsmConnection } from "../Logic/Osm/OsmConnection"
|
||||||
import { ExportableMap, MapProperties } from "./MapProperties"
|
import { ExportableMap, MapProperties } from "./MapProperties"
|
||||||
import LayerState from "../Logic/State/LayerState"
|
import LayerState from "../Logic/State/LayerState"
|
||||||
|
@ -46,7 +50,9 @@ import BackgroundLayerResetter from "../Logic/Actors/BackgroundLayerResetter"
|
||||||
import SaveFeatureSourceToLocalStorage from "../Logic/FeatureSource/Actors/SaveFeatureSourceToLocalStorage"
|
import SaveFeatureSourceToLocalStorage from "../Logic/FeatureSource/Actors/SaveFeatureSourceToLocalStorage"
|
||||||
import BBoxFeatureSource from "../Logic/FeatureSource/Sources/TouchesBboxFeatureSource"
|
import BBoxFeatureSource from "../Logic/FeatureSource/Sources/TouchesBboxFeatureSource"
|
||||||
import ThemeViewStateHashActor from "../Logic/Web/ThemeViewStateHashActor"
|
import ThemeViewStateHashActor from "../Logic/Web/ThemeViewStateHashActor"
|
||||||
import NoElementsInViewDetector, { FeatureViewState } from "../Logic/Actors/NoElementsInViewDetector"
|
import NoElementsInViewDetector, {
|
||||||
|
FeatureViewState
|
||||||
|
} from "../Logic/Actors/NoElementsInViewDetector"
|
||||||
import FilteredLayer from "./FilteredLayer"
|
import FilteredLayer from "./FilteredLayer"
|
||||||
import { PreferredRasterLayerSelector } from "../Logic/Actors/PreferredRasterLayerSelector"
|
import { PreferredRasterLayerSelector } from "../Logic/Actors/PreferredRasterLayerSelector"
|
||||||
import { ImageUploadManager } from "../Logic/ImageProviders/ImageUploadManager"
|
import { ImageUploadManager } from "../Logic/ImageProviders/ImageUploadManager"
|
||||||
|
@ -150,6 +156,10 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
||||||
public readonly toCacheSavers: ReadonlyMap<string, SaveFeatureSourceToLocalStorage>
|
public readonly toCacheSavers: ReadonlyMap<string, SaveFeatureSourceToLocalStorage>
|
||||||
|
|
||||||
public readonly nearbyImageSearcher: CombinedFetcher
|
public readonly nearbyImageSearcher: CombinedFetcher
|
||||||
|
/**
|
||||||
|
* Geocoded images that should be shown on the main map; probably only the currently hovered image
|
||||||
|
*/
|
||||||
|
public readonly geocodedImages: UIEventSource<Feature[]> = new UIEventSource<Feature[]>([ ])
|
||||||
|
|
||||||
public readonly searchState: SearchState
|
public readonly searchState: SearchState
|
||||||
|
|
||||||
|
@ -773,6 +783,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
||||||
gps_location: this.geolocation.currentUserLocation,
|
gps_location: this.geolocation.currentUserLocation,
|
||||||
gps_location_history: this.geolocation.historicalUserLocations,
|
gps_location_history: this.geolocation.historicalUserLocations,
|
||||||
gps_track: this.geolocation.historicalUserLocationsTrack,
|
gps_track: this.geolocation.historicalUserLocationsTrack,
|
||||||
|
geocoded_image: new StaticFeatureSource(this.geocodedImages),
|
||||||
selected_element: new StaticFeatureSource(
|
selected_element: new StaticFeatureSource(
|
||||||
this.selectedElement.map((f) => (f === undefined ? empty : [f]))
|
this.selectedElement.map((f) => (f === undefined ? empty : [f]))
|
||||||
),
|
),
|
||||||
|
@ -898,6 +909,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
||||||
this.selectedElement.addCallback((selected) => {
|
this.selectedElement.addCallback((selected) => {
|
||||||
if (selected === undefined) {
|
if (selected === undefined) {
|
||||||
this.focusOnMap()
|
this.focusOnMap()
|
||||||
|
this.geocodedImages.set([])
|
||||||
} else {
|
} else {
|
||||||
this.lastClickObject.clear()
|
this.lastClickObject.clear()
|
||||||
}
|
}
|
||||||
|
@ -934,6 +946,9 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
||||||
this.userRelatedState.recentlyVisitedSearch.add(r)
|
this.userRelatedState.recentlyVisitedSearch.add(r)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
this.userRelatedState.showScale.addCallbackAndRun(showScale => {
|
||||||
|
this.mapProperties.showScale.set(showScale)
|
||||||
|
})
|
||||||
new ThemeViewStateHashActor(this)
|
new ThemeViewStateHashActor(this)
|
||||||
new MetaTagging(this)
|
new MetaTagging(this)
|
||||||
new TitleHandler(this.selectedElement, this.featureProperties, this)
|
new TitleHandler(this.selectedElement, this.featureProperties, this)
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
import { UIEventSource } from "../../Logic/UIEventSource"
|
||||||
import { onDestroy } from "svelte"
|
import { onDestroy } from "svelte"
|
||||||
import { Utils } from "../../Utils"
|
import { Utils } from "../../Utils"
|
||||||
import Tr from "../Base/Tr.svelte"
|
import type { ValidatorType } from "../InputElement/Validators"
|
||||||
|
import InputHelper from "../InputElement/InputHelper.svelte"
|
||||||
|
|
||||||
export let filteredLayer: FilteredLayer
|
export let filteredLayer: FilteredLayer
|
||||||
export let option: FilterConfigOption
|
export let option: FilterConfigOption
|
||||||
|
@ -18,7 +19,7 @@
|
||||||
parts = Utils.splitIntoSubstitutionParts(template)
|
parts = Utils.splitIntoSubstitutionParts(template)
|
||||||
}
|
}
|
||||||
let fieldValues: Record<string, UIEventSource<string>> = {}
|
let fieldValues: Record<string, UIEventSource<string>> = {}
|
||||||
let fieldTypes: Record<string, string> = {}
|
let fieldTypes: Record<string, ValidatorType> = {}
|
||||||
let appliedFilter = <UIEventSource<string>>filteredLayer.appliedFilters.get(id)
|
let appliedFilter = <UIEventSource<string>>filteredLayer.appliedFilters.get(id)
|
||||||
let initialState: Record<string, string> = JSON.parse(appliedFilter?.data ?? "{}")
|
let initialState: Record<string, string> = JSON.parse(appliedFilter?.data ?? "{}")
|
||||||
|
|
||||||
|
@ -35,25 +36,30 @@
|
||||||
appliedFilter?.setData(FilteredLayer.fieldsToString(properties))
|
appliedFilter?.setData(FilteredLayer.fieldsToString(properties))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let firstValue : UIEventSource<string>
|
||||||
for (const field of option.fields) {
|
for (const field of option.fields) {
|
||||||
// A bit of cheating: the 'parts' will have '}' suffixed for fields
|
// A bit of cheating: the 'parts' will have '}' suffixed for fields
|
||||||
const src = new UIEventSource<string>(initialState[field.name] ?? "")
|
const src = new UIEventSource<string>(initialState[field.name] ?? "")
|
||||||
|
firstValue ??= src
|
||||||
fieldTypes[field.name] = field.type
|
fieldTypes[field.name] = field.type
|
||||||
|
console.log(field.name, "-->", field.type)
|
||||||
fieldValues[field.name] = src
|
fieldValues[field.name] = src
|
||||||
onDestroy(
|
onDestroy(
|
||||||
src.stabilized(200).addCallback(() => {
|
src.stabilized(200).addCallback(() => {
|
||||||
setFields()
|
setFields()
|
||||||
})
|
}),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div>
|
<div class="low-interaction p-1 rounded-2xl px-3" class:interactive={$firstValue?.length > 0}>
|
||||||
{#each parts as part, i}
|
{#each parts as part, i}
|
||||||
{#if part["subs"]}
|
{#if part["subs"]}
|
||||||
<!-- This is a field! -->
|
<!-- This is a field! -->
|
||||||
<span class="mx-1">
|
<span class="mx-1">
|
||||||
<ValidatedInput value={fieldValues[part["subs"]]} type={fieldTypes[part["subs"]]} />
|
<InputHelper value={fieldValues[part["subs"]]} type={fieldTypes[part["subs"]]}>
|
||||||
|
<ValidatedInput slot="fallback" value={fieldValues[part["subs"]]} type={fieldTypes[part["subs"]]} />
|
||||||
|
</InputHelper>
|
||||||
</span>
|
</span>
|
||||||
{:else}
|
{:else}
|
||||||
{@html part["message"]}
|
{@html part["message"]}
|
||||||
|
|
|
@ -34,7 +34,12 @@
|
||||||
export let coordinate: { lon: number; lat: number } = undefined
|
export let coordinate: { lon: number; lat: number } = undefined
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The center of the map at all times
|
* Max distance that one is allowed to move, to prevent to stray too much
|
||||||
|
*/
|
||||||
|
export let maxDistanceInMeters = 50
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The resulting location; either the map center or the snapped coordinate
|
||||||
* If undefined at the beginning, 'coordinate' will be used
|
* If undefined at the beginning, 'coordinate' will be used
|
||||||
*/
|
*/
|
||||||
export let value: UIEventSource<{ lon: number; lat: number }>
|
export let value: UIEventSource<{ lon: number; lat: number }>
|
||||||
|
@ -57,11 +62,6 @@
|
||||||
|
|
||||||
export let snappedTo: UIEventSource<WayId | undefined>
|
export let snappedTo: UIEventSource<WayId | undefined>
|
||||||
|
|
||||||
let preciseLocation: UIEventSource<{ lon: number; lat: number }> = new UIEventSource<{
|
|
||||||
lon: number
|
|
||||||
lat: number
|
|
||||||
}>(undefined)
|
|
||||||
|
|
||||||
const map: UIEventSource<MlMap> = new UIEventSource<MlMap>(undefined)
|
const map: UIEventSource<MlMap> = new UIEventSource<MlMap>(undefined)
|
||||||
export let mapProperties: Partial<MapProperties> & { location } = {
|
export let mapProperties: Partial<MapProperties> & { location } = {
|
||||||
zoom: new UIEventSource<number>(19),
|
zoom: new UIEventSource<number>(19),
|
||||||
|
@ -69,10 +69,7 @@
|
||||||
/*If no snapping needed: the value is simply the map location;
|
/*If no snapping needed: the value is simply the map location;
|
||||||
* If snapping is needed: the value will be set later on by the snapping feature source
|
* If snapping is needed: the value will be set later on by the snapping feature source
|
||||||
* */
|
* */
|
||||||
location:
|
location: new UIEventSource<{ lon: number; lat: number }>(coordinate),
|
||||||
snapToLayers?.length > 0
|
|
||||||
? new UIEventSource<{ lon: number; lat: number }>(coordinate)
|
|
||||||
: value,
|
|
||||||
bounds: new UIEventSource<BBox>(undefined),
|
bounds: new UIEventSource<BBox>(undefined),
|
||||||
allowMoving: new UIEventSource<boolean>(true),
|
allowMoving: new UIEventSource<boolean>(true),
|
||||||
allowZooming: new UIEventSource<boolean>(true),
|
allowZooming: new UIEventSource<boolean>(true),
|
||||||
|
@ -143,15 +140,16 @@
|
||||||
})
|
})
|
||||||
withCorrectedAttributes.features.addCallbackAndRunD((f) => console.log("Snapped point is", f))
|
withCorrectedAttributes.features.addCallbackAndRunD((f) => console.log("Snapped point is", f))
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<LocationInput
|
<LocationInput
|
||||||
{map}
|
{map}
|
||||||
on:click
|
on:click
|
||||||
{mapProperties}
|
{mapProperties}
|
||||||
value={preciseLocation}
|
value={ snapToLayers?.length > 0 ? new UIEventSource(undefined) : value}
|
||||||
initialCoordinate={coordinate}
|
initialCoordinate={coordinate}
|
||||||
maxDistanceInMeters={50}
|
{maxDistanceInMeters}
|
||||||
>
|
>
|
||||||
<slot name="image" slot="image">
|
<slot name="image" slot="image">
|
||||||
<Move_arrows class="h-full max-h-24" />
|
<Move_arrows class="h-full max-h-24" />
|
||||||
|
|
|
@ -132,6 +132,7 @@
|
||||||
<div class="flex h-32 w-max gap-x-2">
|
<div class="flex h-32 w-max gap-x-2">
|
||||||
{#each $unknownImages as image (image)}
|
{#each $unknownImages as image (image)}
|
||||||
<AttributedImage
|
<AttributedImage
|
||||||
|
{state}
|
||||||
imgClass="h-32 w-max shrink-0"
|
imgClass="h-32 w-max shrink-0"
|
||||||
image={{ url: image }}
|
image={{ url: image }}
|
||||||
previewedImage={state.previewedImage}
|
previewedImage={state.previewedImage}
|
||||||
|
|
|
@ -7,10 +7,12 @@
|
||||||
import { Mapillary } from "../../Logic/ImageProviders/Mapillary"
|
import { Mapillary } from "../../Logic/ImageProviders/Mapillary"
|
||||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
import { UIEventSource } from "../../Logic/UIEventSource"
|
||||||
import { MagnifyingGlassPlusIcon } from "@babeard/svelte-heroicons/outline"
|
import { MagnifyingGlassPlusIcon } from "@babeard/svelte-heroicons/outline"
|
||||||
import { CloseButton, Modal } from "flowbite-svelte"
|
import { CloseButton } from "flowbite-svelte"
|
||||||
import ImageOperations from "./ImageOperations.svelte"
|
import ImageOperations from "./ImageOperations.svelte"
|
||||||
import Popup from "../Base/Popup.svelte"
|
import Popup from "../Base/Popup.svelte"
|
||||||
import { onDestroy } from "svelte"
|
import { onDestroy } from "svelte"
|
||||||
|
import type { SpecialVisualizationState } from "../SpecialVisualization"
|
||||||
|
import type { Feature, Point } from "geojson"
|
||||||
|
|
||||||
export let image: Partial<ProvidedImage>
|
export let image: Partial<ProvidedImage>
|
||||||
let fallbackImage: string = undefined
|
let fallbackImage: string = undefined
|
||||||
|
@ -20,19 +22,43 @@
|
||||||
|
|
||||||
let imgEl: HTMLImageElement
|
let imgEl: HTMLImageElement
|
||||||
export let imgClass: string = undefined
|
export let imgClass: string = undefined
|
||||||
|
export let state: SpecialVisualizationState = undefined
|
||||||
export let attributionFormat: "minimal" | "medium" | "large" = "medium"
|
export let attributionFormat: "minimal" | "medium" | "large" = "medium"
|
||||||
export let previewedImage: UIEventSource<ProvidedImage>
|
export let previewedImage: UIEventSource<ProvidedImage>
|
||||||
export let canZoom = previewedImage !== undefined
|
export let canZoom = previewedImage !== undefined
|
||||||
let loaded = false
|
let loaded = false
|
||||||
let showBigPreview = new UIEventSource(false)
|
let showBigPreview = new UIEventSource(false)
|
||||||
onDestroy(showBigPreview.addCallbackAndRun(shown=>{
|
onDestroy(showBigPreview.addCallbackAndRun(shown => {
|
||||||
if(!shown){
|
if (!shown) {
|
||||||
previewedImage.set(false)
|
previewedImage.set(false)
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
onDestroy(previewedImage.addCallbackAndRun(previewedImage => {
|
onDestroy(previewedImage.addCallbackAndRun(previewedImage => {
|
||||||
showBigPreview.set(previewedImage?.id === image.id)
|
showBigPreview.set(previewedImage?.id === image.id)
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
function highlight(entered: boolean = true) {
|
||||||
|
if (!entered) {
|
||||||
|
state?.geocodedImages.set([])
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (isNaN(image.lon) || isNaN(image.lat)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const f: Feature<Point> = {
|
||||||
|
type: "Feature",
|
||||||
|
properties: {
|
||||||
|
id: image.id,
|
||||||
|
rotation: image.rotation
|
||||||
|
},
|
||||||
|
geometry: {
|
||||||
|
type: "Point",
|
||||||
|
coordinates: [image.lon, image.lat]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(f)
|
||||||
|
state?.geocodedImages.set([f])
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Popup shown={showBigPreview} bodyPadding="p-0" dismissable={true}>
|
<Popup shown={showBigPreview} bodyPadding="p-0" dismissable={true}>
|
||||||
|
@ -48,7 +74,10 @@
|
||||||
</div>
|
</div>
|
||||||
</Popup>
|
</Popup>
|
||||||
<div class="relative shrink-0">
|
<div class="relative shrink-0">
|
||||||
<div class="relative w-fit">
|
<div class="relative w-fit"
|
||||||
|
on:mouseenter={() => highlight()}
|
||||||
|
on:mouseleave={() => highlight(false)}
|
||||||
|
>
|
||||||
<img
|
<img
|
||||||
bind:this={imgEl}
|
bind:this={imgEl}
|
||||||
on:load={() => (loaded = true)}
|
on:load={() => (loaded = true)}
|
||||||
|
@ -68,7 +97,7 @@
|
||||||
{#if canZoom && loaded}
|
{#if canZoom && loaded}
|
||||||
<div
|
<div
|
||||||
class="bg-black-transparent absolute right-0 top-0 rounded-bl-full"
|
class="bg-black-transparent absolute right-0 top-0 rounded-bl-full"
|
||||||
on:click={() => previewedImage.set(image)}>
|
on:click={() => previewedImage.set(image)}>
|
||||||
<MagnifyingGlassPlusIcon class="h-8 w-8 cursor-zoom-in pl-3 pb-3" color="white" />
|
<MagnifyingGlassPlusIcon class="h-8 w-8 cursor-zoom-in pl-3 pb-3" color="white" />
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -8,7 +8,6 @@ import ImageProvider, { ProvidedImage } from "../../Logic/ImageProviders/ImagePr
|
||||||
import { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
import { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
||||||
import { Changes } from "../../Logic/Osm/Changes"
|
import { Changes } from "../../Logic/Osm/Changes"
|
||||||
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
||||||
import { Feature } from "geojson"
|
|
||||||
import SvelteUIElement from "../Base/SvelteUIElement"
|
import SvelteUIElement from "../Base/SvelteUIElement"
|
||||||
import AttributedImage from "./AttributedImage.svelte"
|
import AttributedImage from "./AttributedImage.svelte"
|
||||||
|
|
||||||
|
@ -30,6 +29,7 @@ export class ImageCarousel extends Toggle {
|
||||||
try {
|
try {
|
||||||
let image: BaseUIElement = new SvelteUIElement(AttributedImage, {
|
let image: BaseUIElement = new SvelteUIElement(AttributedImage, {
|
||||||
image: url,
|
image: url,
|
||||||
|
state,
|
||||||
previewedImage: state?.previewedImage,
|
previewedImage: state?.previewedImage,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
import AttributedImage from "./AttributedImage.svelte"
|
import AttributedImage from "./AttributedImage.svelte"
|
||||||
import SpecialTranslation from "../Popup/TagRendering/SpecialTranslation.svelte"
|
import SpecialTranslation from "../Popup/TagRendering/SpecialTranslation.svelte"
|
||||||
import LoginToggle from "../Base/LoginToggle.svelte"
|
import LoginToggle from "../Base/LoginToggle.svelte"
|
||||||
import ImagePreview from "./ImagePreview.svelte"
|
import { onDestroy } from "svelte"
|
||||||
import FloatOver from "../Base/FloatOver.svelte"
|
import { Utils } from "../../Utils"
|
||||||
|
|
||||||
export let tags: UIEventSource<OsmTags>
|
export let tags: UIEventSource<OsmTags>
|
||||||
export let state: SpecialVisualizationState
|
export let state: SpecialVisualizationState
|
||||||
|
@ -23,6 +23,8 @@
|
||||||
export let feature: Feature
|
export let feature: Feature
|
||||||
export let layer: LayerConfig
|
export let layer: LayerConfig
|
||||||
|
|
||||||
|
export let highlighted: UIEventSource<string> = undefined
|
||||||
|
|
||||||
export let linkable = true
|
export let linkable = true
|
||||||
let targetValue = Object.values(image.osmTags)[0]
|
let targetValue = Object.values(image.osmTags)[0]
|
||||||
let isLinked = new UIEventSource(Object.values(tags.data).some((v) => targetValue === v))
|
let isLinked = new UIEventSource(Object.values(tags.data).some((v) => targetValue === v))
|
||||||
|
@ -33,7 +35,7 @@
|
||||||
key: undefined,
|
key: undefined,
|
||||||
provider: AllImageProviders.byName(image.provider),
|
provider: AllImageProviders.byName(image.provider),
|
||||||
date: new Date(image.date),
|
date: new Date(image.date),
|
||||||
id: Object.values(image.osmTags)[0],
|
id: Object.values(image.osmTags)[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
async function applyLink(isLinked: boolean) {
|
async function applyLink(isLinked: boolean) {
|
||||||
|
@ -44,7 +46,7 @@
|
||||||
if (isLinked) {
|
if (isLinked) {
|
||||||
const action = new LinkImageAction(currentTags.id, key, url, tags, {
|
const action = new LinkImageAction(currentTags.id, key, url, tags, {
|
||||||
theme: tags.data._orig_theme ?? state.layout.id,
|
theme: tags.data._orig_theme ?? state.layout.id,
|
||||||
changeType: "link-image",
|
changeType: "link-image"
|
||||||
})
|
})
|
||||||
await state.changes.applyAction(action)
|
await state.changes.applyAction(action)
|
||||||
} else {
|
} else {
|
||||||
|
@ -53,7 +55,7 @@
|
||||||
if (v === url) {
|
if (v === url) {
|
||||||
const action = new ChangeTagAction(currentTags.id, new Tag(k, ""), currentTags, {
|
const action = new ChangeTagAction(currentTags.id, new Tag(k, ""), currentTags, {
|
||||||
theme: tags.data._orig_theme ?? state.layout.id,
|
theme: tags.data._orig_theme ?? state.layout.id,
|
||||||
changeType: "remove-image",
|
changeType: "remove-image"
|
||||||
})
|
})
|
||||||
state.changes.applyAction(action)
|
state.changes.applyAction(action)
|
||||||
}
|
}
|
||||||
|
@ -62,16 +64,30 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
isLinked.addCallback((isLinked) => applyLink(isLinked))
|
isLinked.addCallback((isLinked) => applyLink(isLinked))
|
||||||
|
|
||||||
|
let element: HTMLDivElement
|
||||||
|
if (highlighted) {
|
||||||
|
|
||||||
|
onDestroy(
|
||||||
|
highlighted.addCallbackD(highlightedUrl => {
|
||||||
|
if (highlightedUrl === image.pictureUrl) {
|
||||||
|
Utils.scrollIntoView(element)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="flex w-fit shrink-0 flex-col overflow-hidden rounded-lg"
|
class="flex w-fit shrink-0 flex-col overflow-hidden rounded-lg"
|
||||||
class:border-interactive={$isLinked}
|
class:border-interactive={$isLinked || $highlighted === image.pictureUrl}
|
||||||
style="border-width: 2px"
|
style="border-width: 2px"
|
||||||
|
bind:this={element}
|
||||||
>
|
>
|
||||||
<AttributedImage
|
<AttributedImage
|
||||||
|
{state}
|
||||||
image={providedImage}
|
image={providedImage}
|
||||||
imgClass="max-h-64 w-auto"
|
imgClass="max-h-64 w-auto sm:h-32 md:h-64"
|
||||||
previewedImage={state.previewedImage}
|
previewedImage={state.previewedImage}
|
||||||
attributionFormat="minimal"
|
attributionFormat="minimal"
|
||||||
>
|
>
|
||||||
|
|
|
@ -7,13 +7,23 @@
|
||||||
import type { SpecialVisualizationState } from "../SpecialVisualization"
|
import type { SpecialVisualizationState } from "../SpecialVisualization"
|
||||||
import type { P4CPicture } from "../../Logic/Web/NearbyImagesSearch"
|
import type { P4CPicture } from "../../Logic/Web/NearbyImagesSearch"
|
||||||
import LinkableImage from "./LinkableImage.svelte"
|
import LinkableImage from "./LinkableImage.svelte"
|
||||||
import type { Feature } from "geojson"
|
import type { Feature, Point } from "geojson"
|
||||||
import LayerConfig from "../../Models/ThemeConfig/LayerConfig"
|
import LayerConfig from "../../Models/ThemeConfig/LayerConfig"
|
||||||
import Loading from "../Base/Loading.svelte"
|
import Loading from "../Base/Loading.svelte"
|
||||||
import AllImageProviders from "../../Logic/ImageProviders/AllImageProviders"
|
import AllImageProviders from "../../Logic/ImageProviders/AllImageProviders"
|
||||||
import Tr from "../Base/Tr.svelte"
|
import Tr from "../Base/Tr.svelte"
|
||||||
import Translations from "../i18n/Translations"
|
import Translations from "../i18n/Translations"
|
||||||
import MapillaryLink from "../BigComponents/MapillaryLink.svelte"
|
import MapillaryLink from "../BigComponents/MapillaryLink.svelte"
|
||||||
|
import MaplibreMap from "../Map/MaplibreMap.svelte"
|
||||||
|
import { Map as MlMap } from "maplibre-gl"
|
||||||
|
import { MapLibreAdaptor } from "../Map/MapLibreAdaptor"
|
||||||
|
import ShowDataLayer from "../Map/ShowDataLayer"
|
||||||
|
import StaticFeatureSource from "../../Logic/FeatureSource/Sources/StaticFeatureSource"
|
||||||
|
import * as geocoded_image from "../../assets/generated/layers/geocoded_image.json"
|
||||||
|
import type { LayerConfigJson } from "../../Models/ThemeConfig/Json/LayerConfigJson"
|
||||||
|
import { onDestroy } from "svelte"
|
||||||
|
import { BBox } from "../../Logic/BBox"
|
||||||
|
|
||||||
|
|
||||||
export let tags: UIEventSource<OsmTags>
|
export let tags: UIEventSource<OsmTags>
|
||||||
export let state: SpecialVisualizationState
|
export let state: SpecialVisualizationState
|
||||||
|
@ -42,12 +52,100 @@
|
||||||
[loadedImages]
|
[loadedImages]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
let asFeatures = result.map(p4cs => p4cs.map(p4c => (<Feature<Point>>{
|
||||||
|
type: "Feature",
|
||||||
|
geometry: {
|
||||||
|
type: "Point",
|
||||||
|
coordinates: [p4c.coordinates.lng, p4c.coordinates.lat]
|
||||||
|
},
|
||||||
|
properties: {
|
||||||
|
id: p4c.pictureUrl,
|
||||||
|
rotation: p4c.direction
|
||||||
|
}
|
||||||
|
})))
|
||||||
|
|
||||||
|
let selected = new UIEventSource<P4CPicture>(undefined)
|
||||||
|
let selectedAsFeature = selected.mapD(s => {
|
||||||
|
return [<Feature<Point>>{
|
||||||
|
type: "Feature",
|
||||||
|
geometry: {
|
||||||
|
type: "Point",
|
||||||
|
coordinates: [s.coordinates.lng, s.coordinates.lat]
|
||||||
|
},
|
||||||
|
properties: {
|
||||||
|
id: s.pictureUrl,
|
||||||
|
selected: "yes",
|
||||||
|
rotation: s.direction
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
|
||||||
let someLoading = imageState.state.mapD((stateRecord) =>
|
let someLoading = imageState.state.mapD((stateRecord) =>
|
||||||
Object.values(stateRecord).some((v) => v === "loading")
|
Object.values(stateRecord).some((v) => v === "loading")
|
||||||
)
|
)
|
||||||
let errors = imageState.state.mapD((stateRecord) =>
|
let errors = imageState.state.mapD((stateRecord) =>
|
||||||
Object.keys(stateRecord).filter((k) => stateRecord[k] === "error")
|
Object.keys(stateRecord).filter((k) => stateRecord[k] === "error")
|
||||||
)
|
)
|
||||||
|
let highlighted = new UIEventSource<string>(undefined)
|
||||||
|
|
||||||
|
onDestroy(highlighted.addCallbackD(hl => {
|
||||||
|
const p4c = result.data?.find(i => i.pictureUrl === hl)
|
||||||
|
selected.set(p4c)
|
||||||
|
}
|
||||||
|
))
|
||||||
|
|
||||||
|
let map: UIEventSource<MlMap> = new UIEventSource<MlMap>(undefined)
|
||||||
|
let mapProperties = new MapLibreAdaptor(map, {
|
||||||
|
rasterLayer: state.mapProperties.rasterLayer,
|
||||||
|
rotation: state.mapProperties.rotation,
|
||||||
|
pitch: state.mapProperties.pitch,
|
||||||
|
zoom: new UIEventSource<number>(16),
|
||||||
|
location: new UIEventSource({ lon, lat }),
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
const geocodedImageLayer = new LayerConfig(<LayerConfigJson>geocoded_image)
|
||||||
|
new ShowDataLayer(map, {
|
||||||
|
features: new StaticFeatureSource(asFeatures),
|
||||||
|
layer: geocodedImageLayer,
|
||||||
|
zoomToFeatures: true,
|
||||||
|
onClick: (feature) => {
|
||||||
|
highlighted.set(feature.properties.id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
ShowDataLayer.showMultipleLayers(
|
||||||
|
map,
|
||||||
|
new StaticFeatureSource([feature]),
|
||||||
|
state.layout.layers
|
||||||
|
)
|
||||||
|
|
||||||
|
onDestroy(
|
||||||
|
asFeatures.addCallbackAndRunD(features => {
|
||||||
|
if(features.length == 0){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let bbox = BBox.get(features[0])
|
||||||
|
for (const f of features) {
|
||||||
|
bbox = bbox.unionWith(BBox.get(f))
|
||||||
|
}
|
||||||
|
mapProperties.maxbounds.set(bbox.pad(1.1))
|
||||||
|
})
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
new ShowDataLayer(map, {
|
||||||
|
features: new StaticFeatureSource(selectedAsFeature),
|
||||||
|
layer: geocodedImageLayer,
|
||||||
|
onClick: (feature) => {
|
||||||
|
highlighted.set(feature.properties.id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
|
@ -62,12 +160,24 @@
|
||||||
{:else}
|
{:else}
|
||||||
<div class="flex w-full space-x-4 overflow-x-auto" style="scroll-snap-type: x proximity">
|
<div class="flex w-full space-x-4 overflow-x-auto" style="scroll-snap-type: x proximity">
|
||||||
{#each $result as image (image.pictureUrl)}
|
{#each $result as image (image.pictureUrl)}
|
||||||
<span class="w-fit shrink-0" style="scroll-snap-align: start">
|
<span class="w-fit shrink-0" style="scroll-snap-align: start"
|
||||||
<LinkableImage {tags} {image} {state} {feature} {layer} {linkable} />
|
on:mouseenter={() => {highlighted.set(image.pictureUrl)}}
|
||||||
|
on:mouseleave={() =>{ highlighted.set(undefined); selected.set(undefined)}}
|
||||||
|
>
|
||||||
|
<LinkableImage {tags} {image} {state} {feature} {layer} {linkable} {highlighted} />
|
||||||
</span>
|
</span>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
<span class="self-end pt-2">
|
||||||
|
|
||||||
|
<MapillaryLink
|
||||||
|
large={false}
|
||||||
|
mapProperties={{ zoom: new ImmutableStore(16), location: new ImmutableStore({ lon, lat }) }}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
<div class="my-2 flex justify-between">
|
<div class="my-2 flex justify-between">
|
||||||
<div>
|
<div>
|
||||||
{#if $someLoading && $result.length > 0}
|
{#if $someLoading && $result.length > 0}
|
||||||
|
@ -80,9 +190,10 @@
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
<MapillaryLink
|
</div>
|
||||||
large={false}
|
|
||||||
mapProperties={{ zoom: new ImmutableStore(16), location: new ImmutableStore({ lon, lat }) }}
|
|
||||||
/>
|
<div class="h-48">
|
||||||
|
<MaplibreMap interactive={false} {map} {mapProperties} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,8 +11,9 @@
|
||||||
import Camera_plus from "../../assets/svg/Camera_plus.svelte"
|
import Camera_plus from "../../assets/svg/Camera_plus.svelte"
|
||||||
import LoginToggle from "../Base/LoginToggle.svelte"
|
import LoginToggle from "../Base/LoginToggle.svelte"
|
||||||
import { ariaLabel } from "../../Utils/ariaLabel"
|
import { ariaLabel } from "../../Utils/ariaLabel"
|
||||||
import { Accordion, AccordionItem } from "flowbite-svelte"
|
import { Accordion, AccordionItem, Modal } from "flowbite-svelte"
|
||||||
import AccordionSingle from "../Flowbite/AccordionSingle.svelte"
|
import AccordionSingle from "../Flowbite/AccordionSingle.svelte"
|
||||||
|
import Popup from "../Base/Popup.svelte"
|
||||||
|
|
||||||
export let tags: UIEventSource<OsmTags>
|
export let tags: UIEventSource<OsmTags>
|
||||||
export let state: SpecialVisualizationState
|
export let state: SpecialVisualizationState
|
||||||
|
@ -24,15 +25,16 @@
|
||||||
export let layer: LayerConfig
|
export let layer: LayerConfig
|
||||||
const t = Translations.t.image.nearby
|
const t = Translations.t.image.nearby
|
||||||
|
|
||||||
let expanded = false
|
|
||||||
let enableLogin = state.featureSwitches.featureSwitchEnableLogin
|
let enableLogin = state.featureSwitches.featureSwitchEnableLogin
|
||||||
|
export let shown = new UIEventSource(false)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if enableLogin.data}
|
{#if enableLogin.data}
|
||||||
<AccordionSingle>
|
<button on:click={() => {shown.set(!shown.data)}}><Tr t={t.seeNearby}/> </button>
|
||||||
<span slot="header" class="p-2 text-base">
|
<Popup {shown} bodyPadding="p-4">
|
||||||
|
<span slot="header">
|
||||||
<Tr t={t.seeNearby} />
|
<Tr t={t.seeNearby} />
|
||||||
</span>
|
</span>
|
||||||
<NearbyImages {tags} {state} {lon} {lat} {feature} {linkable} {layer} />
|
<NearbyImages {tags} {state} {lon} {lat} {feature} {linkable} {layer} />
|
||||||
</AccordionSingle>
|
</Popup>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -18,9 +18,15 @@
|
||||||
/**
|
/**
|
||||||
* A visualisation to pick a location on a map background
|
* A visualisation to pick a location on a map background
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* The center of the map. If it contains a value (and initialCoordinate is not given), this will be used as start coordinate
|
||||||
|
*/
|
||||||
export let value: UIEventSource<{ lon: number; lat: number }>
|
export let value: UIEventSource<{ lon: number; lat: number }>
|
||||||
export let initialCoordinate: { lon: number; lat: number }
|
export let initialCoordinate: { lon: number; lat: number } = undefined
|
||||||
initialCoordinate = initialCoordinate ?? value.data
|
initialCoordinate = initialCoordinate ?? value.data
|
||||||
|
/**
|
||||||
|
* Max distance that one is allowed to stray from the initial coordinate
|
||||||
|
*/
|
||||||
export let maxDistanceInMeters: number = undefined
|
export let maxDistanceInMeters: number = undefined
|
||||||
export let mapProperties: Partial<MapProperties> & {
|
export let mapProperties: Partial<MapProperties> & {
|
||||||
readonly location: UIEventSource<{ lon: number; lat: number }>
|
readonly location: UIEventSource<{ lon: number; lat: number }>
|
||||||
|
|
|
@ -23,9 +23,9 @@
|
||||||
export let type: ValidatorType
|
export let type: ValidatorType
|
||||||
export let value: UIEventSource<string | object>
|
export let value: UIEventSource<string | object>
|
||||||
|
|
||||||
export let feature: Feature
|
export let feature: Feature = undefined
|
||||||
export let args: (string | number | boolean)[] = undefined
|
export let args: (string | number | boolean)[] = undefined
|
||||||
export let state: SpecialVisualizationState
|
export let state: SpecialVisualizationState = undefined
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if type === "translation"}
|
{#if type === "translation"}
|
||||||
|
@ -51,4 +51,6 @@
|
||||||
<SlopeInput {value} {feature} {state} />
|
<SlopeInput {value} {feature} {state} />
|
||||||
{:else if type === "wikidata"}
|
{:else if type === "wikidata"}
|
||||||
<WikidataInputHelper {value} {feature} {state} {args} />
|
<WikidataInputHelper {value} {feature} {state} {args} />
|
||||||
|
{:else}
|
||||||
|
<slot name="fallback" />
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -125,7 +125,7 @@
|
||||||
<HeartOutlineIcon style="--svg-color: {color}" class={twMerge(clss, "apply-fill")} />
|
<HeartOutlineIcon style="--svg-color: {color}" class={twMerge(clss, "apply-fill")} />
|
||||||
{:else if icon === "confirm"}
|
{:else if icon === "confirm"}
|
||||||
<Confirm class={clss} {color} />
|
<Confirm class={clss} {color} />
|
||||||
{:else if icon === "direction"}
|
{:else if icon === "direction" || icon === "direction_gradient"}
|
||||||
<Direction_gradient class={clss} {color} />
|
<Direction_gradient class={clss} {color} />
|
||||||
{:else if icon === "not_found"}
|
{:else if icon === "not_found"}
|
||||||
<Not_found class={twMerge(clss, "no-image-background")} {color} />
|
<Not_found class={twMerge(clss, "no-image-background")} {color} />
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { ImmutableStore, Store, UIEventSource } from "../../Logic/UIEventSource"
|
import { ImmutableStore, Store, UIEventSource } from "../../Logic/UIEventSource"
|
||||||
import maplibregl, { Map as MLMap, Map as MlMap, SourceSpecification } from "maplibre-gl"
|
import maplibregl, { Map as MLMap, Map as MlMap, ScaleControl, SourceSpecification } from "maplibre-gl"
|
||||||
import { RasterLayerPolygon } from "../../Models/RasterLayers"
|
import { RasterLayerPolygon } from "../../Models/RasterLayers"
|
||||||
import { Utils } from "../../Utils"
|
import { Utils } from "../../Utils"
|
||||||
import { BBox } from "../../Logic/BBox"
|
import { BBox } from "../../Logic/BBox"
|
||||||
|
@ -48,6 +48,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
readonly rotation: UIEventSource<number>
|
readonly rotation: UIEventSource<number>
|
||||||
readonly pitch: UIEventSource<number>
|
readonly pitch: UIEventSource<number>
|
||||||
readonly useTerrain: Store<boolean>
|
readonly useTerrain: Store<boolean>
|
||||||
|
readonly showScale: UIEventSource<boolean>
|
||||||
|
|
||||||
private static pmtilesInited = false
|
private static pmtilesInited = false
|
||||||
/**
|
/**
|
||||||
|
@ -93,6 +94,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
this.useTerrain = state?.useTerrain ?? new ImmutableStore<boolean>(false)
|
this.useTerrain = state?.useTerrain ?? new ImmutableStore<boolean>(false)
|
||||||
this.rasterLayer =
|
this.rasterLayer =
|
||||||
state?.rasterLayer ?? new UIEventSource<RasterLayerPolygon | undefined>(undefined)
|
state?.rasterLayer ?? new UIEventSource<RasterLayerPolygon | undefined>(undefined)
|
||||||
|
this.showScale = state?.showScale ?? new UIEventSource<boolean>(false)
|
||||||
|
|
||||||
const lastClickLocation = new UIEventSource<{
|
const lastClickLocation = new UIEventSource<{
|
||||||
lat: number
|
lat: number
|
||||||
|
@ -131,6 +133,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
self.setMaxzoom(self.maxzoom.data)
|
self.setMaxzoom(self.maxzoom.data)
|
||||||
self.setBounds(self.bounds.data)
|
self.setBounds(self.bounds.data)
|
||||||
self.setTerrain(self.useTerrain.data)
|
self.setTerrain(self.useTerrain.data)
|
||||||
|
self.setScale(self.showScale.data)
|
||||||
this.updateStores(true)
|
this.updateStores(true)
|
||||||
})
|
})
|
||||||
self.MoveMapToCurrentLoc(self.location.data)
|
self.MoveMapToCurrentLoc(self.location.data)
|
||||||
|
@ -144,6 +147,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
self.setBounds(self.bounds.data)
|
self.setBounds(self.bounds.data)
|
||||||
self.SetRotation(self.rotation.data)
|
self.SetRotation(self.rotation.data)
|
||||||
self.setTerrain(self.useTerrain.data)
|
self.setTerrain(self.useTerrain.data)
|
||||||
|
self.setScale(self.showScale.data)
|
||||||
this.updateStores(true)
|
this.updateStores(true)
|
||||||
map.on("movestart", () => {
|
map.on("movestart", () => {
|
||||||
this.isFlying.setData(true)
|
this.isFlying.setData(true)
|
||||||
|
@ -221,6 +225,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
this.allowZooming.addCallbackAndRun((allowZooming) => self.setAllowZooming(allowZooming))
|
this.allowZooming.addCallbackAndRun((allowZooming) => self.setAllowZooming(allowZooming))
|
||||||
this.bounds.addCallbackAndRunD((bounds) => self.setBounds(bounds))
|
this.bounds.addCallbackAndRunD((bounds) => self.setBounds(bounds))
|
||||||
this.useTerrain?.addCallbackAndRun((useTerrain) => self.setTerrain(useTerrain))
|
this.useTerrain?.addCallbackAndRun((useTerrain) => self.setTerrain(useTerrain))
|
||||||
|
this.showScale?.addCallbackAndRun(showScale => self.setScale(showScale))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -703,6 +708,32 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private scaleControl: maplibregl.ScaleControl = undefined
|
||||||
|
|
||||||
|
private setScale(showScale: boolean) {
|
||||||
|
const map = this._maplibreMap.data
|
||||||
|
if (!map) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!showScale) {
|
||||||
|
if(this.scaleControl){
|
||||||
|
map.removeControl(this.scaleControl)
|
||||||
|
this.scaleControl = undefined
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.scaleControl === undefined) {
|
||||||
|
|
||||||
|
this.scaleControl = new ScaleControl({
|
||||||
|
maxWidth: 100,
|
||||||
|
unit: "metric"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!map.hasControl(this.scaleControl)) {
|
||||||
|
map.addControl(this.scaleControl, "bottom-right")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public flyTo(lon: number, lat: number, zoom: number) {
|
public flyTo(lon: number, lat: number, zoom: number) {
|
||||||
this.lockZoom()
|
this.lockZoom()
|
||||||
window.requestAnimationFrame(() => {
|
window.requestAnimationFrame(() => {
|
||||||
|
|
|
@ -159,10 +159,9 @@ class PointRenderingLayer {
|
||||||
})
|
})
|
||||||
|
|
||||||
if (this._onClick) {
|
if (this._onClick) {
|
||||||
const self = this
|
el.addEventListener("click", (ev)=> {
|
||||||
el.addEventListener("click", function (ev) {
|
|
||||||
ev.preventDefault()
|
ev.preventDefault()
|
||||||
self._onClick(feature)
|
this._onClick(feature)
|
||||||
// Workaround to signal the MapLibreAdaptor to ignore this click
|
// Workaround to signal the MapLibreAdaptor to ignore this click
|
||||||
ev["consumed"] = true
|
ev["consumed"] = true
|
||||||
})
|
})
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
snapToLayers={$reason.snapTo}
|
snapToLayers={$reason.snapTo}
|
||||||
targetLayer={layer}
|
targetLayer={layer}
|
||||||
dontShow={[id]}
|
dontShow={[id]}
|
||||||
|
maxDistanceInMeters={200}
|
||||||
/>
|
/>
|
||||||
<div class="absolute bottom-0 left-0">
|
<div class="absolute bottom-0 left-0">
|
||||||
<OpenBackgroundSelectorButton {state} />
|
<OpenBackgroundSelectorButton {state} />
|
||||||
|
|
|
@ -48,16 +48,14 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let htmlElem: HTMLDivElement
|
let htmlElem: HTMLDivElement
|
||||||
$: {
|
function enableEditMode(){
|
||||||
if (editMode && htmlElem !== undefined && config.IsKnown($tags)) {
|
editMode = true
|
||||||
// EditMode switched to true yet the answer is already known, so the person wants to make a change
|
// EditMode switched to true yet the answer is already known, so the person wants to make a change
|
||||||
// Make sure that the question is in the scrollview!
|
// Make sure that the question is in the scrollview!
|
||||||
|
window.setTimeout(() => {
|
||||||
// Some delay is applied to give Svelte the time to render the _question_
|
// Some delay is applied to give Svelte the time to render the _question_
|
||||||
window.setTimeout(() => {
|
Utils.scrollIntoView(<any>htmlElem)
|
||||||
Utils.scrollIntoView(<any>htmlElem)
|
}, 50)
|
||||||
}, 50)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const _htmlElement = new UIEventSource<HTMLElement>(undefined)
|
const _htmlElement = new UIEventSource<HTMLElement>(undefined)
|
||||||
|
@ -132,9 +130,7 @@
|
||||||
<EditButton
|
<EditButton
|
||||||
arialabel={config.editButtonAriaLabel}
|
arialabel={config.editButtonAriaLabel}
|
||||||
ariaLabelledBy={answerId}
|
ariaLabelledBy={answerId}
|
||||||
on:click={() => {
|
on:click={() => enableEditMode()}
|
||||||
editMode = true
|
|
||||||
}}
|
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -343,7 +343,7 @@
|
||||||
{#if question !== undefined}
|
{#if question !== undefined}
|
||||||
<div class={clss}>
|
<div class={clss}>
|
||||||
<form
|
<form
|
||||||
class="relative flex flex-col overflow-y-auto px-2"
|
class="relative flex flex-col overflow-y-auto px-4"
|
||||||
style="max-height: 75vh"
|
style="max-height: 75vh"
|
||||||
on:submit|preventDefault={() => {
|
on:submit|preventDefault={() => {
|
||||||
/*onSave(); This submit is not needed and triggers too early, causing bugs: see #1808*/
|
/*onSave(); This submit is not needed and triggers too early, causing bugs: see #1808*/
|
||||||
|
@ -351,7 +351,7 @@
|
||||||
>
|
>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>
|
<legend>
|
||||||
<div class="sticky top-0 justify-between pt-1 font-bold" style="z-index: 11">
|
<div class="sticky top-0 justify-between pt-4 pb-2 font-bold" style="z-index: 11">
|
||||||
<SpecialTranslation t={question} {tags} {state} {layer} feature={selectedElement} />
|
<SpecialTranslation t={question} {tags} {state} {layer} feature={selectedElement} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -557,7 +557,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
<div class="flex flex-wrap-reverse items-stretch justify-end sm:flex-nowrap self-end flex-grow">
|
<div class="flex flex-wrap-reverse items-stretch justify-end sm:flex-nowrap self-end flex-grow mt-4 mb-2">
|
||||||
|
|
||||||
<!-- TagRenderingQuestion-buttons -->
|
<!-- TagRenderingQuestion-buttons -->
|
||||||
<slot name="cancel" />
|
<slot name="cancel" />
|
||||||
|
@ -590,7 +590,7 @@
|
||||||
<TagHint {state} tags={selectedTags} currentProperties={$tags} />
|
<TagHint {state} tags={selectedTags} currentProperties={$tags} />
|
||||||
<span class="flex flex-wrap">
|
<span class="flex flex-wrap">
|
||||||
{#if $featureSwitchIsTesting}
|
{#if $featureSwitchIsTesting}
|
||||||
<div class="alert">Testmode </div>
|
<div class="alert" style="padding: 0; margin: 0; margin-right: 0.5rem">Testmode </div>
|
||||||
{/if}
|
{/if}
|
||||||
{#if $featureSwitchIsTesting || $featureSwitchIsDebugging}
|
{#if $featureSwitchIsTesting || $featureSwitchIsDebugging}
|
||||||
<a class="small" on:click={() => console.log("Configuration is ", config)}>
|
<a class="small" on:click={() => console.log("Configuration is ", config)}>
|
||||||
|
|
|
@ -84,6 +84,7 @@ export interface SpecialVisualizationState {
|
||||||
readonly previewedImage: UIEventSource<ProvidedImage>
|
readonly previewedImage: UIEventSource<ProvidedImage>
|
||||||
readonly nearbyImageSearcher: CombinedFetcher
|
readonly nearbyImageSearcher: CombinedFetcher
|
||||||
readonly geolocation: GeoLocationHandler
|
readonly geolocation: GeoLocationHandler
|
||||||
|
readonly geocodedImages : UIEventSource<Feature[]>
|
||||||
readonly searchState: SearchState
|
readonly searchState: SearchState
|
||||||
|
|
||||||
getMatchingLayer(properties: Record<string, string>);
|
getMatchingLayer(properties: Record<string, string>);
|
||||||
|
|
|
@ -32,12 +32,23 @@
|
||||||
return type.some((t) => mightBeBoolean(t))
|
return type.some((t) => mightBeBoolean(t))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mightBeTag(){
|
||||||
|
const t = schema.type
|
||||||
|
if(!Array.isArray(t)){
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
const hasAnd = t.some(obj => obj["$ref"] === "#/definitions/{and:TagConfigJson[];}")
|
||||||
|
const hasOr = t.some(obj => obj["$ref"] === "#/definitions/{or:TagConfigJson[];}")
|
||||||
|
const hasString = t.some(obj => obj["type"] === "string")
|
||||||
|
return hasAnd && hasOr && hasString
|
||||||
|
}
|
||||||
|
|
||||||
const isTranslation =
|
const isTranslation =
|
||||||
schema.hints?.typehint === "translation" ||
|
schema.hints?.typehint === "translation" ||
|
||||||
schema.hints?.typehint === "rendered" ||
|
schema.hints?.typehint === "rendered" ||
|
||||||
ConfigMetaUtils.isTranslation(schema)
|
ConfigMetaUtils.isTranslation(schema)
|
||||||
let type = schema.hints.typehint ?? "string"
|
|
||||||
|
|
||||||
|
let type = schema.hints.typehint ?? (mightBeTag() ? "tag" : "string")
|
||||||
let rendervalue =
|
let rendervalue =
|
||||||
(schema.hints.inline ?? schema.path.join(".")) +
|
(schema.hints.inline ?? schema.path.join(".")) +
|
||||||
(isTranslation ? " <b>{translated(value)}</b>" : " <b>{value}</b>")
|
(isTranslation ? " <b>{translated(value)}</b>" : " <b>{value}</b>")
|
||||||
|
|
|
@ -310,6 +310,11 @@
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</If>
|
</If>
|
||||||
|
<If condition={state.mapProperties.showScale}>
|
||||||
|
<div class="h-6">
|
||||||
|
<!-- Empty. We just provide some space for the maplibre scalecontrol -->
|
||||||
|
</div>
|
||||||
|
</If>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1275,7 +1275,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
|
||||||
|
|
||||||
public static sortedByLevenshteinDistance<T>(
|
public static sortedByLevenshteinDistance<T>(
|
||||||
reference: string,
|
reference: string,
|
||||||
ts: T[],
|
ts: ReadonlyArray<T>,
|
||||||
getName: (t: T) => string
|
getName: (t: T) => string
|
||||||
): T[] {
|
): T[] {
|
||||||
const withDistance: [T, number][] = ts.map((t) => [
|
const withDistance: [T, number][] = ts.map((t) => [
|
||||||
|
@ -1464,6 +1464,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
|
||||||
if (!element) {
|
if (!element) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
console.log("Scrolling into view:", element)
|
||||||
// Is the element completely in the view?
|
// Is the element completely in the view?
|
||||||
const parentRect = Utils.findParentWithScrolling(element)?.getBoundingClientRect()
|
const parentRect = Utils.findParentWithScrolling(element)?.getBoundingClientRect()
|
||||||
if (!parentRect) {
|
if (!parentRect) {
|
||||||
|
@ -1474,7 +1475,9 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
|
||||||
// Check if the element is within the vertical bounds of the parent element
|
// Check if the element is within the vertical bounds of the parent element
|
||||||
const topIsVisible = elementRect.top >= parentRect.top
|
const topIsVisible = elementRect.top >= parentRect.top
|
||||||
const bottomIsVisible = elementRect.bottom <= parentRect.bottom
|
const bottomIsVisible = elementRect.bottom <= parentRect.bottom
|
||||||
const inView = topIsVisible && bottomIsVisible
|
const leftIsVisible = elementRect.left >= parentRect.left
|
||||||
|
const rightIsVisible = elementRect.right <= parentRect.right
|
||||||
|
const inView = topIsVisible && bottomIsVisible && leftIsVisible && rightIsVisible
|
||||||
if (inView) {
|
if (inView) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<script>
|
<script>
|
||||||
export let color = "#000000"
|
export let color = "#000000"
|
||||||
</script>
|
</script>
|
||||||
<svg {...$$restProps} on:click on:mouseover on:mouseenter on:mouseleave on:keydown on:focus xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns="http://www.w3.org/2000/svg" version="1.0" width="860.50732pt" height="860.50732pt" viewBox="0 0 860.50732 860.50732" preserveAspectRatio="xMidYMid meet" id="svg14" sodipodi:docname="direction_gradient.svg" inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"> <defs id="defs18"> <linearGradient inkscape:collect="always" id="linearGradient832"> <stop style="stop-color:{color};stop-opacity:1;" offset="0" id="stop828"/> <stop style="stop-color:{color};stop-opacity:0;" offset="1" id="stop830"/> </linearGradient> <radialGradient inkscape:collect="always" xlink:href="#linearGradient832" id="radialGradient838" cx="430.25363" cy="519.61188" fx="430.25363" fy="519.61188" r="305.54589" gradientTransform="matrix(0.95288409,-0.94890664,0.94542304,0.94938587,-470.98122,345.21193)" gradientUnits="userSpaceOnUse"/> </defs> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="999" id="namedview16" showgrid="false" showguides="true" inkscape:guide-bbox="true" inkscape:zoom="0.70710678" inkscape:cx="279.00239" inkscape:cy="856.75313" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg14"> <sodipodi:guide position="430.25363,862.49682" orientation="1,0" id="guide832" inkscape:locked="false"/> <sodipodi:guide position="-42.427977,430.25368" orientation="0,1" id="guide834" inkscape:locked="false"/> <sodipodi:guide position="398.27788,720.18823" orientation="0,1" id="guide840" inkscape:locked="false"/> </sodipodi:namedview> <metadata id="metadata2"> Created by potrace 1.15, written by Peter Selinger 2001-2017 <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:title/> </cc:Work> </rdf:RDF> </metadata> <path style="fill:url(#radialGradient838);fill-opacity:1;stroke:none;stroke-width:2.83464575;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 735.79979,124.70799 C 654.79116,43.598883 544.88842,-2.0206645 430.25389,-2.121103 315.61937,-2.0206592 205.71663,43.598888 124.70801,124.70799 l 305.54588,305.54589 z" id="path836" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> </svg>
|
<svg {...$$restProps} on:click on:mouseover on:mouseenter on:mouseleave on:keydown on:focus version="1.0" width="860.50732pt" height="860.50732pt" viewBox="0 0 860.50732 860.50732" preserveAspectRatio="xMidYMid meet" id="svg14" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <defs id="defs18"> <linearGradient id="linearGradient832"> <stop style="stop-color:{color};stop-opacity:1;" offset="0" id="stop828" /> <stop style="stop-color:{color};stop-opacity:0;" offset="1" id="stop830" /> </linearGradient> <radialGradient xlink:href="#linearGradient832" id="radialGradient838" cx="430.25363" cy="519.61188" fx="430.25363" fy="519.61188" r="305.54589" gradientTransform="matrix(0.95288409,-0.94890664,0.94542304,0.94938587,-470.98122,345.21193)" gradientUnits="userSpaceOnUse" /> </defs> <metadata id="metadata2"> Created by potrace 1.15, written by Peter Selinger 2001-2017 <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <path style="fill:url(#radialGradient838);fill-opacity:1;stroke:none;stroke-width:2.83464575;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 735.79979,124.70799 C 654.79116,43.598883 544.88842,-2.0206645 430.25389,-2.121103 315.61937,-2.0206592 205.71663,43.598888 124.70801,124.70799 l 305.54588,305.54589 z" id="path836" /> </svg>
|
4
src/assets/svg/Unsnap.svelte
Normal file
4
src/assets/svg/Unsnap.svelte
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<script>
|
||||||
|
export let color = "#000000"
|
||||||
|
</script>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) --> <svg {...$$restProps} on:click on:mouseover on:mouseenter on:mouseleave on:keydown on:focus width="120" height="120" viewBox="0 0 120 120" version="1.1" id="svg1" xml:space="preserve" inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)" sodipodi:docname="unsnap.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview id="namedview1" pagecolor="#ffffff" bordercolor="#999999" borderopacity="1" inkscape:showpageshadow="2" inkscape:pageopacity="0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:document-units="px" showguides="true" inkscape:zoom="4.5168066" inkscape:cx="51.695815" inkscape:cy="69.186048" inkscape:window-width="1920" inkscape:window-height="995" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="layer1"><sodipodi:guide position="315.49944,61.936443" orientation="0,-1" id="guide2" inkscape:locked="false" /></sodipodi:namedview><defs id="defs1" /><g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(-5,-5)"><path id="path1-2" style="fill:{color};fill-opacity:1;stroke-width:3.93092" d="m 91.670867,40.074491 c 0.948679,0.909931 1.380066,2.234124 1.148907,3.527969 l -3.447995,17.260743 c -0.381611,2.137177 -2.526217,4.001294 -4.081205,2.486091 L 79.257979,57.469775 64.262133,72.31877 c -1.383257,1.369713 -3.807955,0.909932 -4.298111,0.288099 -1.707154,-2.165786 -0.138139,-3.968458 0.177549,-4.304093 L 74.600311,52.930303 68.567707,47.05079 c -1.554665,-1.51554 0.253754,-3.707343 2.380393,-4.143751 l 17.16644,-3.89041 c 1.287478,-0.264342 2.622313,0.132882 3.556328,1.057866 z" sodipodi:nodetypes="cccccsssccccc" /><g id="g8" transform="matrix(-1,0,0,1,132.686,0)" /><g id="g10" transform="matrix(0.99755231,-0.06992414,-0.06992414,-0.99755231,14.642674,124.44485)"><path style="color:{color};fill:{color};stroke-linecap:round;-inkscape-stroke:none" d="M 10,90 45,10" id="path3" /><path id="path4" style="color:{color};fill:#808080;stroke-linecap:round;-inkscape-stroke:none;stroke:none;stroke-opacity:1;fill-opacity:1" d="M 45.097656,5.0019531 A 5,5 0 0 0 43.177734,5.34375 5,5 0 0 0 40.419922,7.9960938 L 35.865234,18.40625 c 3.405007,0.669609 6.469474,2.331825 8.867188,4.679688 L 49.580078,12.003906 A 5,5 0 0 0 47.003906,5.4199219 5,5 0 0 0 45.097656,5.0019531 Z M 22.177734,49.691406 5.4199219,87.996094 a 5,5 0 0 0 2.5761719,6.583984 5,5 0 0 0 6.5839842,-2.576172 L 31.621094,53.052734 c -3.513941,-0.175553 -6.76611,-1.396873 -9.44336,-3.361328 z" /><path style="fill:#808080;fill-opacity:1;stroke:{color};stroke-width:0;stroke-linecap:round;stroke-opacity:1" id="path9" sodipodi:type="arc" sodipodi:cx="32.616085" sodipodi:cy="35.55938" sodipodi:rx="12.741771" sodipodi:ry="12.741771" sodipodi:start="0" sodipodi:end="6.26046" sodipodi:open="true" sodipodi:arc-type="arc" d="M 45.357856,35.55938 A 12.741771,12.741771 0 0 1 32.688475,48.300945 12.741771,12.741771 0 0 1 19.875137,35.704157 12.741771,12.741771 0 0 1 32.398925,22.81946 12.741771,12.741771 0 0 1 45.354566,35.269844" /></g><path style="fill:{color};fill-opacity:1;stroke:{color};stroke-width:0;stroke-linecap:round;stroke-opacity:1" id="path10" sodipodi:type="arc" sodipodi:cx="-106.61823" sodipodi:cy="26.136267" sodipodi:rx="12.741771" sodipodi:ry="12.741771" sodipodi:start="0" sodipodi:end="6.26046" sodipodi:open="true" sodipodi:arc-type="arc" d="m -93.876462,26.136267 a 12.741771,12.741771 0 0 1 -12.669378,12.741565 12.741771,12.741771 0 0 1 -12.81334,-12.596788 12.741771,12.741771 0 0 1 12.52379,-12.884697 12.741771,12.741771 0 0 1 12.955638,12.450384" transform="scale(-1,1)" /></g></svg>
|
|
@ -158,7 +158,7 @@ describe("ImageProviders", () => {
|
||||||
)
|
)
|
||||||
|
|
||||||
Utils.injectJsonDownloadForTests(
|
Utils.injectJsonDownloadForTests(
|
||||||
"https://graph.mapillary.com/196804715753265?fields=thumb_1024_url,thumb_original_url,captured_at,creator&access_token=MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85",
|
"https://graph.mapillary.com/196804715753265?fields=thumb_1024_url,thumb_original_url,captured_at,compass_angle,geometry,creator&access_token=MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85",
|
||||||
{
|
{
|
||||||
thumb_1024_url:
|
thumb_1024_url:
|
||||||
"https://scontent-bru2-1.xx.fbcdn.net/m1/v/t6/An8HQ3DrfU76tWMC602spvM_e_rqOHyiUcYUTetXM7K52DDBEY5J4FWg4WKQqVUlMsWJn4nLXk0pxlBLx31146FqZ2Kg65z7lJUfR6wpW6WPSR5_y7RKdv4YEuzPjwIN0lagBnQONV3UjmXnEGpMouU?stp=s1024x768&ccb=10-5&oh=d460b401c505714ee1cb8bd6baf8ae5d&oe=61731FC3&_nc_sid=122ab1",
|
"https://scontent-bru2-1.xx.fbcdn.net/m1/v/t6/An8HQ3DrfU76tWMC602spvM_e_rqOHyiUcYUTetXM7K52DDBEY5J4FWg4WKQqVUlMsWJn4nLXk0pxlBLx31146FqZ2Kg65z7lJUfR6wpW6WPSR5_y7RKdv4YEuzPjwIN0lagBnQONV3UjmXnEGpMouU?stp=s1024x768&ccb=10-5&oh=d460b401c505714ee1cb8bd6baf8ae5d&oe=61731FC3&_nc_sid=122ab1",
|
||||||
|
@ -167,6 +167,14 @@ describe("ImageProviders", () => {
|
||||||
|
|
||||||
id: "196804715753265",
|
id: "196804715753265",
|
||||||
captured_at: 1627748022000,
|
captured_at: 1627748022000,
|
||||||
|
"compass_angle": 0,
|
||||||
|
"geometry": {
|
||||||
|
"type": "Point",
|
||||||
|
"coordinates": [
|
||||||
|
3.2153751999722,
|
||||||
|
51.215653199972
|
||||||
|
]
|
||||||
|
},
|
||||||
creator: {
|
creator: {
|
||||||
username: "filipc",
|
username: "filipc",
|
||||||
id: "109372117958792",
|
id: "109372117958792",
|
||||||
|
|
Loading…
Reference in a new issue