forked from MapComplete/MapComplete
Update to climbing theme
This commit is contained in:
parent
116371c351
commit
c25e039a91
3 changed files with 32 additions and 18 deletions
|
@ -505,22 +505,27 @@
|
||||||
"images",
|
"images",
|
||||||
"questions",
|
"questions",
|
||||||
{
|
{
|
||||||
"#": "Contained routes",
|
|
||||||
"render": "<h3>Contains the following routes</h3> <ul>{_contained_climbing_routes}</ul>",
|
|
||||||
"condition": "_contained_climbing_routes~*"
|
|
||||||
}, {
|
|
||||||
"#": "Contained routes length hist",
|
"#": "Contained routes length hist",
|
||||||
"render": {
|
"render": {
|
||||||
"en": "<h3>Length overview</h3>{histogram(_length_hist)}"
|
"en": "<h3>Length overview</h3>{histogram(_length_hist)}"
|
||||||
}
|
},
|
||||||
|
"condition": "_length_hist!~\\[\\]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"#": "Contained routes hist",
|
"#": "Contained routes hist",
|
||||||
"render": {
|
"render": {
|
||||||
"en": "<h3>Difficulties overview</h3>{histogram(_difficulty_hist)}"
|
"en": "<h3>Difficulties overview</h3>{histogram(_difficulty_hist, , , 3[a-zA-Z+-]*:#56bd56, 4[a-zA-Z+-]*:#ffff59,5[a-zA-Z+-]*:#ffad48, 6[a-zA-Z+-]*:#63a9ff, 7[a-zA-Z+-]*:#ff5858, 8[a-zA-Z+-]*:#000000, .*:#aaa )}"
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
},
|
||||||
|
"condition": "_difficulty_hist!~\\[\\]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"#": "Containe {_contained_climbing_routes_count} routes",
|
||||||
|
"render": {
|
||||||
|
"en": "<h3>Contains {_contained_climbing_routes_count} routes</h3> <ul>{_contained_climbing_routes}</ul>"
|
||||||
|
},
|
||||||
|
"condition": "_contained_climbing_routes~*"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"#": "name",
|
"#": "name",
|
||||||
"render": {
|
"render": {
|
||||||
|
@ -622,7 +627,8 @@
|
||||||
"_contained_climbing_routes_properties=feat.overlapWith('climbing_route').map(f => f.feat.properties).map(p => {return {id: p.id, name: p.name, 'climbing:grade:french': p['climbing:grade:french'], 'climbing:length': p['climbing:length']} })",
|
"_contained_climbing_routes_properties=feat.overlapWith('climbing_route').map(f => f.feat.properties).map(p => {return {id: p.id, name: p.name, 'climbing:grade:french': p['climbing:grade:french'], 'climbing:length': p['climbing:length']} })",
|
||||||
"_contained_climbing_routes=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => `<li><a href='#${p.id}'>${p.name ?? 'climbing route'}</a> (<b>${p['climbing:grade:french'] ?? 'unknown difficulty'}</b>, ${p['climbing:length'] ?? 'unkown length'} meter)</li>`).join('')",
|
"_contained_climbing_routes=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => `<li><a href='#${p.id}'>${p.name ?? 'climbing route'}</a> (<b>${p['climbing:grade:french'] ?? 'unknown difficulty'}</b>, ${p['climbing:length'] ?? 'unkown length'} meter)</li>`).join('')",
|
||||||
"_difficulty_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:grade:french'])",
|
"_difficulty_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:grade:french'])",
|
||||||
"_length_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:length'])"
|
"_length_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:length'])",
|
||||||
|
"_contained_climbing_routes_count=JSON.parse(_contained_climbing_routes).length"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -654,15 +660,15 @@
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"render": {
|
"render": {
|
||||||
"en": "Climbing opportunity?",
|
"en": "Possible climbing opportunity",
|
||||||
"nl": "Klimgelegenheid?",
|
"nl": "Mogelijke klimgelegenheid",
|
||||||
"de": "Klettermöglichkeit?",
|
"de": "Klettermöglichkeit?",
|
||||||
"ja": "登坂教室?",
|
"ja": "登坂教室?",
|
||||||
"nb_NO": "Klatremulighet?"
|
"nb_NO": "Klatremulighet?"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"nl": "Een klimgelegenheid?",
|
"nl": "Een mogelijke klimgelegenheid?",
|
||||||
"de": "Eine Klettergelegenheit?",
|
"de": "Eine Klettergelegenheit?",
|
||||||
"en": "A climbing opportunity?",
|
"en": "A climbing opportunity?",
|
||||||
"ja": "登坂教室?",
|
"ja": "登坂教室?",
|
||||||
|
@ -1226,13 +1232,12 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"overrideAll": {
|
"overrideAll": {
|
||||||
"calculatedTags+": [
|
"+calculatedTags": [
|
||||||
"_embedding_feature_properties=feat.overlapWith('climbing').map(f => f.feat.properties).filter(p => p !== undefined).map(p => {return{access: p.access, id: p.id, name: p.name, climbing: p.climbing, 'access:description': p['access:description']}})",
|
"_embedding_feature_properties=feat.overlapWith('climbing').map(f => f.feat.properties).filter(p => p !== undefined).map(p => {return{access: p.access, id: p.id, name: p.name, climbing: p.climbing, 'access:description': p['access:description']}})",
|
||||||
"_embedding_features_with_access=JSON.parse(feat.properties._embedding_feature_properties ?? '[]').filter(p => p.access !== undefined)[0]",
|
"_embedding_features_with_access=JSON.parse(feat.properties._embedding_feature_properties ?? '[]').filter(p => p.access !== undefined)[0]",
|
||||||
"_embedding_feature:access=JSON.parse(feat.properties._embedding_features_with_access ?? '{}').access",
|
"_embedding_feature:access=JSON.parse(feat.properties._embedding_features_with_access ?? '{}').access",
|
||||||
"_embedding_feature:access:description=JSON.parse(feat.properties._embedding_features_with_access ?? '{}')['access:description']",
|
"_embedding_feature:access:description=JSON.parse(feat.properties._embedding_features_with_access ?? '{}')['access:description']",
|
||||||
"_embedding_feature:id=JSON.parse(feat.properties._embedding_features_with_access ?? '{}').id",
|
"_embedding_feature:id=JSON.parse(feat.properties._embedding_features_with_access ?? '{}').id"
|
||||||
"_layer=feat._layer_id"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
9
test.ts
9
test.ts
|
@ -10,6 +10,8 @@ import {FixedUiElement} from "./UI/Base/FixedUiElement";
|
||||||
import Img from "./UI/Base/Img";
|
import Img from "./UI/Base/Img";
|
||||||
import {AttributedImage} from "./UI/Image/AttributedImage";
|
import {AttributedImage} from "./UI/Image/AttributedImage";
|
||||||
import {Imgur} from "./Logic/Web/Imgur";
|
import {Imgur} from "./Logic/Web/Imgur";
|
||||||
|
import ReviewForm from "./UI/Reviews/ReviewForm";
|
||||||
|
import {OsmConnection} from "./Logic/Osm/OsmConnection";
|
||||||
|
|
||||||
|
|
||||||
function TestSlideshow(){
|
function TestSlideshow(){
|
||||||
|
@ -17,7 +19,7 @@ function TestSlideshow(){
|
||||||
new FixedUiElement("A"),
|
new FixedUiElement("A"),
|
||||||
new FixedUiElement("qmsldkfjqmlsdkjfmqlskdjfmqlksdf").SetClass("text-xl"),
|
new FixedUiElement("qmsldkfjqmlsdkjfmqlskdjfmqlksdf").SetClass("text-xl"),
|
||||||
new Img("https://i.imgur.com/8lIQ5Hv.jpg"),
|
new Img("https://i.imgur.com/8lIQ5Hv.jpg"),
|
||||||
new AttributedImage("https://i.imgur.com/y5XudzW.jpg", new Imgur()),
|
new AttributedImage("https://i.imgur.com/y5XudzW.jpg", Imgur.singleton),
|
||||||
new Img("https://www.grunge.com/img/gallery/the-real-reason-your-cat-sleeps-so-much/intro-1601496900.webp")
|
new Img("https://www.grunge.com/img/gallery/the-real-reason-your-cat-sleeps-so-much/intro-1601496900.webp")
|
||||||
])
|
])
|
||||||
new SlideShow(elems).AttachTo("maindiv")
|
new SlideShow(elems).AttachTo("maindiv")
|
||||||
|
@ -62,5 +64,6 @@ function TestAllInputMethods(){
|
||||||
})).AttachTo("maindiv")
|
})).AttachTo("maindiv")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
new ReviewForm(() => {
|
||||||
TestSlideshow()
|
return undefined;
|
||||||
|
}, new OsmConnection(true, new UIEventSource<string>(undefined), "test")).AttachTo("maindiv");
|
|
@ -89,6 +89,12 @@ export default class TagSpec extends T{
|
||||||
equal(assign.matchesProperties({"_date:now": "2021-03-29"}), false);
|
equal(assign.matchesProperties({"_date:now": "2021-03-29"}), false);
|
||||||
equal(assign.matchesProperties({"some_key": "2021-03-29"}), false);
|
equal(assign.matchesProperties({"some_key": "2021-03-29"}), false);
|
||||||
|
|
||||||
|
const notEmptyList = FromJSON.Tag("xyz!~\\[\\]")
|
||||||
|
equal(notEmptyList.matchesProperties({"xyz":undefined}), true);
|
||||||
|
equal(notEmptyList.matchesProperties({"xyz":"[]"}), false);
|
||||||
|
equal(notEmptyList.matchesProperties({"xyz":"[\"abc\"]"}), true);
|
||||||
|
|
||||||
|
|
||||||
})],
|
})],
|
||||||
["Is equivalent test", (() => {
|
["Is equivalent test", (() => {
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue