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