forked from MapComplete/MapComplete
		
	Fix: add support for 'alsoShowIf' in multiAnswers, fix https://github.com/pietervdvn/MapComplete/issues/2293
This commit is contained in:
		
							parent
							
								
									09b68633d9
								
							
						
					
					
						commit
						cddf319c9e
					
				
					 3 changed files with 240 additions and 857 deletions
				
			
		
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -80,6 +80,12 @@
 | 
			
		|||
        {
 | 
			
		||||
          "if": "bicycle=yes",
 | 
			
		||||
          "ifnot": "bicycle=no",
 | 
			
		||||
          "alsoShowIf": {
 | 
			
		||||
            "or": [
 | 
			
		||||
              "bicycle=designated",
 | 
			
		||||
              "bicycle=customers"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "then": {
 | 
			
		||||
            "en": "<b>Bicycles</b> can be charged here",
 | 
			
		||||
            "nl": "<b>Elektrische fietsen</b> kunnen hier opgeladen worden"
 | 
			
		||||
| 
						 | 
				
			
			@ -87,6 +93,12 @@
 | 
			
		|||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "if": "motorcar=yes",
 | 
			
		||||
          "alsoShowIf": {
 | 
			
		||||
            "or": [
 | 
			
		||||
              "motorcar=designated",
 | 
			
		||||
              "motorcar=customers"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "ifnot": "motorcar=no",
 | 
			
		||||
          "then": {
 | 
			
		||||
            "en": "<b>Cars</b> can be charged here",
 | 
			
		||||
| 
						 | 
				
			
			@ -95,6 +107,12 @@
 | 
			
		|||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "if": "scooter=yes",
 | 
			
		||||
          "alsoShowIf": {
 | 
			
		||||
            "or": [
 | 
			
		||||
              "scooter=designated",
 | 
			
		||||
              "scooter=customers"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "ifnot": "scooter=no",
 | 
			
		||||
          "then": {
 | 
			
		||||
            "en": "<b>Scooters</b> can be charged here",
 | 
			
		||||
| 
						 | 
				
			
			@ -103,6 +121,12 @@
 | 
			
		|||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "if": "hgv=yes",
 | 
			
		||||
          "alsoShowIf": {
 | 
			
		||||
            "or": [
 | 
			
		||||
              "hgv=designated",
 | 
			
		||||
              "hgv=customers"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "ifnot": "hgv=no",
 | 
			
		||||
          "then": {
 | 
			
		||||
            "en": "<b>Heavy good vehicles</b> (such as trucks) can be charged here",
 | 
			
		||||
| 
						 | 
				
			
			@ -111,6 +135,12 @@
 | 
			
		|||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "if": "bus=yes",
 | 
			
		||||
          "alsoShowIf": {
 | 
			
		||||
            "or": [
 | 
			
		||||
              "bus=designated",
 | 
			
		||||
              "bus=customers"
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "ifnot": "bus=no",
 | 
			
		||||
          "then": {
 | 
			
		||||
            "en": "<b>Buses</b> can be charged here",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -479,6 +479,9 @@ export default class TagRenderingConfig {
 | 
			
		|||
                if (TagUtils.MatchesMultiAnswer(m.if, tags)) {
 | 
			
		||||
                    return true
 | 
			
		||||
                }
 | 
			
		||||
                if (m.alsoShowIf?.matchesProperties(tags)) {
 | 
			
		||||
                    return true
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            const free = this.freeform?.key
 | 
			
		||||
| 
						 | 
				
			
			@ -522,14 +525,17 @@ export default class TagRenderingConfig {
 | 
			
		|||
            then: TypedTranslation<Record<string, string>>
 | 
			
		||||
            img?: string
 | 
			
		||||
        }[] = Utils.NoNull(
 | 
			
		||||
            (this.mappings ?? [])?.map((mapping) => {
 | 
			
		||||
            (this.mappings ?? [])?.filter((mapping) => {
 | 
			
		||||
                if (mapping.if === undefined) {
 | 
			
		||||
                    return mapping
 | 
			
		||||
                    return true
 | 
			
		||||
                }
 | 
			
		||||
                if (TagUtils.MatchesMultiAnswer(mapping.if, tags)) {
 | 
			
		||||
                    return mapping
 | 
			
		||||
                    return true
 | 
			
		||||
                }
 | 
			
		||||
                return undefined
 | 
			
		||||
                if (mapping.alsoShowIf?.matchesProperties(tags)) {
 | 
			
		||||
                    return true
 | 
			
		||||
                }
 | 
			
		||||
                return false
 | 
			
		||||
            })
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue