Merge pull request #2296 from bhousel/master

Support option strings for combo fields
This commit is contained in:
Bryan Housel
2014-07-22 14:08:50 -04:00
32 changed files with 719 additions and 313 deletions
+118 -8
View File
@@ -77,6 +77,10 @@ en:
label: Type
aerialway/access:
label: Access
options:
entry: Entry
exit: Exit
both: Both
aerialway/bubble:
label: Bubble
aerialway/capacity:
@@ -92,6 +96,10 @@ en:
placeholder: "2, 4, 8..."
aerialway/summer/access:
label: Access (summer)
options:
entry: Entry
exit: Exit
both: Both
aeroway:
label: Type
amenity:
@@ -119,6 +127,23 @@ en:
placeholder: "50, 100, 200..."
cardinal_direction:
label: Direction
options:
"N": North
E: East
S: South
W: West
NE: Northeast
SE: Southeast
SW: Southwest
NW: Northwest
NNE: North-northeast
ENE: East-northeast
ESE: East-southeast
SSE: South-southeast
SSW: South-southwest
WSW: West-southwest
WNW: West-northwest
NNW: North-northwest
clock_direction:
label: Direction
options:
@@ -146,6 +171,12 @@ en:
label: Description
electrified:
label: Electrification
placeholder: "Contact Line, Electrified Rail..."
options:
contact_line: Contact Line
rail: Electrified Rail
"yes": Yes (unspecified)
"no": "No"
elevation:
label: Elevation
emergency:
@@ -161,6 +192,11 @@ en:
label: Fee
fire_hydrant/type:
label: Type
options:
pillar: Pillar/Aboveground
underground: Underground
wall: Wall
pond: Pond
fixme:
label: Fix Me
fuel:
@@ -279,15 +315,49 @@ en:
label: Park and Ride
parking:
label: Type
options:
surface: Surface
multi-storey: Multilevel
underground: Underground
sheds: Sheds
carports: Carports
garage_boxes: Garage Boxes
lane: Roadside Lane
phone:
label: Phone
placeholder: +31 42 123 4567
piste/difficulty:
label: Difficulty
placeholder: "Easy, Intermediate, Advanced..."
options:
novice: Novice (instructional)
easy: Easy (green circle)
intermediate: Intermediate (blue square)
advanced: Advanced (black diamond)
expert: Expert (double black diamond)
freeride: Freeride (off-piste)
extreme: Extreme (climing equipment required)
piste/grooming:
label: Grooming
options:
classic: Classic
mogul: Mogul
backcountry: Backcountry
classic+skating: Classic and Skating
scooter: Scooter/Snowmobile
skating: Skating
piste/type:
label: Type
options:
downhill: Downhill
nordic: Nordic
skitour: Skitour
sled: Sled
hike: Hike
sleigh: Sleigh
ice_skate: Ice Skate
snow_park: Snow Park
playground: Playground
place:
label: Type
population:
@@ -310,14 +380,6 @@ en:
label: Type
religion:
label: Religion
options:
christian: Christian
muslim: Muslim
buddhist: Buddhist
jewish: Jewish
hindu: Hindu
shinto: Shinto
taoist: Taoist
restriction:
label: Type
restrictions:
@@ -328,6 +390,14 @@ en:
label: Type
sac_scale:
label: Path Difficulty
placeholder: "Mountain Hiking, Alpine Hiking..."
options:
hiking: "T1: Hiking"
mountain_hiking: "T2: Mountain Hiking"
demanding_mountain_hiking: "T3: Demanding Mountain Hiking"
alpine_hiking: "T4: Alpine Hiking"
demanding_alpine_hiking: "T5: Demanding Alpine Hiking"
difficult_alpine_hiking: "T6: Difficult Alpine Hiking"
seasonal:
label: Seasonal
service:
@@ -342,6 +412,26 @@ en:
label: Sloped Curb
smoking:
label: Smoking
placeholder: "No, Separated, Yes..."
options:
"no": No smoking anywhere
separated: "In smoking areas, not physically isolated"
isolated: "In smoking areas, physically isolated"
outside: Allowed outside
"yes": Allowed everywhere
dedicated: "Dedicated to smokers (e.g. smokers' club)"
smoothness:
label: Smoothness
placeholder: "Thin Rollers, Wheels, Off-Road..."
options:
excellent: "Thin Rollers: rollerblade, skateboard"
good: "Thin Wheels: racing bike"
intermediate: "Wheels: city bike, wheelchair, scooter"
bad: "Robust Wheels: trekking bike, car, rickshaw"
very_bad: "High Clearance: light duty off-road vehicle"
horrible: "Off-Road: heavy duty off-road vehicle"
very_horrible: "Specialized off-road: tractor, ATV"
impassible: Impassible / No wheeled vehicle
social_facility_for:
label: People served
placeholder: "Homeless, Disabled, Child, etc"
@@ -370,14 +460,34 @@ en:
label: Tactile Paving
toilets/disposal:
label: Disposal
options:
flush: Flush
pitlatrine: Pit/Latrine
chemical: Chemical
bucket: Bucket
tourism:
label: Type
towertype:
label: Tower type
tracktype:
label: Type
placeholder: "Solid, Mostly Solid, Soft..."
options:
grade1: "Solid: paved or heavily compacted hardcore surface"
grade2: "Mostly Solid: gravel/rock with some soft material mixed in"
grade3: Even mixture of hard and soft materials
grade4: "Mostly Soft: soil/sand/grass with some hard material mixed in"
grade5: "Soft: soil/sand/grass"
trail_visibility:
label: Trail Visibility
placeholder: "Excellent, Good, Bad..."
options:
excellent: "Excellent: unambiguous path or markers everywhere"
good: "Good: markers visible, sometimes require searching"
intermediate: "Intermediate: few markers, path mostly visible"
bad: "Bad: no markers, path sometimes invisible/pathless"
horrible: "Horrible: often pathless, some orientation skills required"
"no": "No: pathless, excellent orientation skills required"
tree_type:
label: Type
trees:
+190 -119
View File
@@ -118,12 +118,14 @@
"aerialway/access": {
"key": "aerialway:access",
"type": "combo",
"options": [
"entry",
"exit",
"both"
],
"label": "Access"
"label": "Access",
"strings": {
"options": {
"entry": "Entry",
"exit": "Exit",
"both": "Both"
}
}
},
"aerialway/bubble": {
"key": "aerialway:bubble",
@@ -156,12 +158,14 @@
"aerialway/summer/access": {
"key": "aerialway:summer:access",
"type": "combo",
"options": [
"entry",
"exit",
"both"
],
"label": "Access (summer)"
"label": "Access (summer)",
"strings": {
"options": {
"entry": "Entry",
"exit": "Exit",
"both": "Both"
}
}
},
"aeroway": {
"key": "aeroway",
@@ -229,32 +233,31 @@
"cardinal_direction": {
"key": "direction",
"type": "combo",
"options": [
"N",
"E",
"S",
"W",
"NE",
"SE",
"SW",
"NNE",
"ENE",
"ESE",
"SSE",
"SSW",
"WSW",
"WNW",
"NNW"
],
"label": "Direction"
"label": "Direction",
"strings": {
"options": {
"N": "North",
"E": "East",
"S": "South",
"W": "West",
"NE": "Northeast",
"SE": "Southeast",
"SW": "Southwest",
"NW": "Northwest",
"NNE": "North-northeast",
"ENE": "East-northeast",
"ESE": "East-southeast",
"SSE": "South-southeast",
"SSW": "South-southwest",
"WSW": "West-southwest",
"WNW": "West-northwest",
"NNW": "North-northwest"
}
}
},
"clock_direction": {
"key": "direction",
"type": "combo",
"options": [
"clockwise",
"anticlockwise"
],
"label": "Direction",
"strings": {
"options": {
@@ -296,7 +299,6 @@
"cuisine": {
"key": "cuisine",
"type": "combo",
"indexed": true,
"label": "Cuisine"
},
"denomination": {
@@ -318,12 +320,15 @@
"key": "electrified",
"type": "combo",
"label": "Electrification",
"options": [
"contact_line",
"rail",
"yes",
"no"
]
"placeholder": "Contact Line, Electrified Rail...",
"strings": {
"options": {
"contact_line": "Contact Line",
"rail": "Electrified Rail",
"yes": "Yes (unspecified)",
"no": "No"
}
}
},
"elevation": {
"key": "ele",
@@ -361,13 +366,15 @@
"fire_hydrant/type": {
"key": "fire_hydrant:type",
"type": "combo",
"options": [
"pillar",
"pond",
"underground",
"wall"
],
"label": "Type"
"label": "Type",
"strings": {
"options": {
"pillar": "Pillar/Aboveground",
"underground": "Underground",
"wall": "Wall",
"pond": "Pond"
}
}
},
"fixme": {
"key": "fixme",
@@ -495,13 +502,6 @@
"internet_access": {
"key": "internet_access",
"type": "combo",
"options": [
"yes",
"no",
"wlan",
"wired",
"terminal"
],
"label": "Internet Access",
"strings": {
"options": {
@@ -647,16 +647,18 @@
"parking": {
"key": "parking",
"type": "combo",
"options": [
"surface",
"multi-storey",
"underground",
"sheds",
"carports",
"garage_boxes",
"lane"
],
"label": "Type"
"label": "Type",
"strings": {
"options": {
"surface": "Surface",
"multi-storey": "Multilevel",
"underground": "Underground",
"sheds": "Sheds",
"carports": "Carports",
"garage_boxes": "Garage Boxes",
"lane": "Roadside Lane"
}
}
},
"phone": {
"key": "phone",
@@ -669,17 +671,52 @@
"piste/difficulty": {
"key": "piste:difficulty",
"type": "combo",
"label": "Difficulty"
"label": "Difficulty",
"placeholder": "Easy, Intermediate, Advanced...",
"strings": {
"options": {
"novice": "Novice (instructional)",
"easy": "Easy (green circle)",
"intermediate": "Intermediate (blue square)",
"advanced": "Advanced (black diamond)",
"expert": "Expert (double black diamond)",
"freeride": "Freeride (off-piste)",
"extreme": "Extreme (climing equipment required)"
}
}
},
"piste/grooming": {
"key": "piste:grooming",
"type": "combo",
"label": "Grooming"
"label": "Grooming",
"strings": {
"options": {
"classic": "Classic",
"mogul": "Mogul",
"backcountry": "Backcountry",
"classic+skating": "Classic and Skating",
"scooter": "Scooter/Snowmobile",
"skating": "Skating"
}
}
},
"piste/type": {
"key": "piste:type",
"type": "typeCombo",
"label": "Type"
"label": "Type",
"strings": {
"options": {
"downhill": "Downhill",
"nordic": "Nordic",
"skitour": "Skitour",
"sled": "Sled",
"hike": "Hike",
"sleigh": "Sleigh",
"ice_skate": "Ice Skate",
"snow_park": "Snow Park",
"playground": "Playground"
}
}
},
"place": {
"key": "place",
@@ -734,27 +771,7 @@
"religion": {
"key": "religion",
"type": "combo",
"options": [
"christian",
"muslim",
"buddhist",
"jewish",
"hindu",
"shinto",
"taoist"
],
"label": "Religion",
"strings": {
"options": {
"christian": "Christian",
"muslim": "Muslim",
"buddhist": "Buddhist",
"jewish": "Jewish",
"hindu": "Hindu",
"shinto": "Shinto",
"taoist": "Taoist"
}
}
"label": "Religion"
},
"restriction": {
"key": "restriction",
@@ -783,7 +800,18 @@
"sac_scale": {
"key": "sac_scale",
"type": "combo",
"label": "Path Difficulty"
"label": "Path Difficulty",
"placeholder": "Mountain Hiking, Alpine Hiking...",
"strings": {
"options": {
"hiking": "T1: Hiking",
"mountain_hiking": "T2: Mountain Hiking",
"demanding_mountain_hiking": "T3: Demanding Mountain Hiking",
"alpine_hiking": "T4: Alpine Hiking",
"demanding_alpine_hiking": "T5: Demanding Alpine Hiking",
"difficult_alpine_hiking": "T6: Difficult Alpine Hiking"
}
}
},
"seasonal": {
"key": "seasonal",
@@ -793,14 +821,14 @@
"service": {
"key": "service",
"type": "combo",
"label": "Type",
"options": [
"parking_aisle",
"driveway",
"alley",
"drive-through",
"emergency_access"
],
"label": "Type"
"emergency_access",
"drive-through"
]
},
"shelter": {
"key": "shelter",
@@ -810,15 +838,6 @@
"shelter_type": {
"key": "shelter_type",
"type": "combo",
"options": [
"public_transport",
"picnic_shelter",
"weather_shelter",
"lean_to",
"basic_hut",
"field_shelter",
"rock_shelter"
],
"label": "Type"
},
"shop": {
@@ -834,13 +853,36 @@
"smoking": {
"key": "smoking",
"type": "combo",
"options": [
"no",
"outside",
"separated",
"yes"
],
"label": "Smoking"
"label": "Smoking",
"placeholder": "No, Separated, Yes...",
"strings": {
"options": {
"no": "No smoking anywhere",
"separated": "In smoking areas, not physically isolated",
"isolated": "In smoking areas, physically isolated",
"outside": "Allowed outside",
"yes": "Allowed everywhere",
"dedicated": "Dedicated to smokers (e.g. smokers' club)"
}
}
},
"smoothness": {
"key": "smoothness",
"type": "combo",
"label": "Smoothness",
"placeholder": "Thin Rollers, Wheels, Off-Road...",
"strings": {
"options": {
"excellent": "Thin Rollers: rollerblade, skateboard",
"good": "Thin Wheels: racing bike",
"intermediate": "Wheels: city bike, wheelchair, scooter",
"bad": "Robust Wheels: trekking bike, car, rickshaw",
"very_bad": "High Clearance: light duty off-road vehicle",
"horrible": "Off-Road: heavy duty off-road vehicle",
"very_horrible": "Specialized off-road: tractor, ATV",
"impassible": "Impassible / No wheeled vehicle"
}
}
},
"social_facility_for": {
"key": "social_facility:for",
@@ -879,14 +921,14 @@
"sport_ice": {
"key": "sport",
"type": "combo",
"label": "Sport",
"options": [
"skating",
"hockey",
"multi",
"curling",
"ice_stock"
],
"label": "Sport"
]
},
"structure": {
"type": "radio",
@@ -912,11 +954,11 @@
"studio_type": {
"key": "type",
"type": "combo",
"label": "Type",
"options": [
"audio",
"video"
],
"label": "Type"
]
},
"supervised": {
"key": "supervised",
@@ -936,7 +978,15 @@
"toilets/disposal": {
"key": "toilets:disposal",
"type": "combo",
"label": "Disposal"
"label": "Disposal",
"strings": {
"options": {
"flush": "Flush",
"pitlatrine": "Pit/Latrine",
"chemical": "Chemical",
"bucket": "Bucket"
}
}
},
"tourism": {
"key": "tourism",
@@ -951,22 +1001,43 @@
"tracktype": {
"key": "tracktype",
"type": "combo",
"label": "Type"
"label": "Type",
"placeholder": "Solid, Mostly Solid, Soft...",
"strings": {
"options": {
"grade1": "Solid: paved or heavily compacted hardcore surface",
"grade2": "Mostly Solid: gravel/rock with some soft material mixed in",
"grade3": "Even mixture of hard and soft materials",
"grade4": "Mostly Soft: soil/sand/grass with some hard material mixed in",
"grade5": "Soft: soil/sand/grass"
}
}
},
"trail_visibility": {
"key": "trail_visibility",
"type": "combo",
"label": "Trail Visibility"
"label": "Trail Visibility",
"placeholder": "Excellent, Good, Bad...",
"strings": {
"options": {
"excellent": "Excellent: unambiguous path or markers everywhere",
"good": "Good: markers visible, sometimes require searching",
"intermediate": "Intermediate: few markers, path mostly visible",
"bad": "Bad: no markers, path sometimes invisible/pathless",
"horrible": "Horrible: often pathless, some orientation skills required",
"no": "No: pathless, excellent orientation skills required"
}
}
},
"tree_type": {
"key": "type",
"type": "combo",
"label": "Type",
"options": [
"broad_leaved",
"conifer",
"palm"
],
"label": "Type"
]
},
"trees": {
"key": "trees",
+9 -7
View File
@@ -1,10 +1,12 @@
{
"key": "aerialway:access",
"type": "combo",
"options": [
"entry",
"exit",
"both"
],
"label": "Access"
}
"label": "Access",
"strings": {
"options": {
"entry": "Entry",
"exit": "Exit",
"both": "Both"
}
}
}
@@ -1,10 +1,12 @@
{
"key": "aerialway:summer:access",
"type": "combo",
"options": [
"entry",
"exit",
"both"
],
"label": "Access (summer)"
}
"label": "Access (summer)",
"strings": {
"options": {
"entry": "Entry",
"exit": "Exit",
"both": "Both"
}
}
}
+22 -19
View File
@@ -1,22 +1,25 @@
{
"key": "direction",
"type": "combo",
"options": [
"N",
"E",
"S",
"W",
"NE",
"SE",
"SW",
"NNE",
"ENE",
"ESE",
"SSE",
"SSW",
"WSW",
"WNW",
"NNW"
],
"label": "Direction"
}
"label": "Direction",
"strings": {
"options": {
"N": "North",
"E": "East",
"S": "South",
"W": "West",
"NE": "Northeast",
"SE": "Southeast",
"SW": "Southwest",
"NW": "Northwest",
"NNE": "North-northeast",
"ENE": "East-northeast",
"ESE": "East-southeast",
"SSE": "South-southeast",
"SSW": "South-southwest",
"WSW": "West-southwest",
"WNW": "West-northwest",
"NNW": "North-northwest"
}
}
}
+3 -7
View File
@@ -1,15 +1,11 @@
{
"key": "direction",
"type": "combo",
"options": [
"clockwise",
"anticlockwise"
],
"label": "Direction",
"strings": {
"options": {
"clockwise": "Clockwise",
"anticlockwise": "Counterclockwise"
"clockwise": "Clockwise",
"anticlockwise": "Counterclockwise"
}
}
}
}
+1 -2
View File
@@ -1,6 +1,5 @@
{
"key": "cuisine",
"type": "combo",
"indexed": true,
"label": "Cuisine"
}
}
+9 -6
View File
@@ -2,10 +2,13 @@
"key": "electrified",
"type": "combo",
"label": "Electrification",
"options": [
"contact_line",
"rail",
"yes",
"no"
]
"placeholder": "Contact Line, Electrified Rail...",
"strings": {
"options": {
"contact_line": "Contact Line",
"rail": "Electrified Rail",
"yes": "Yes (unspecified)",
"no": "No"
}
}
}
+10 -8
View File
@@ -1,11 +1,13 @@
{
"key": "fire_hydrant:type",
"type": "combo",
"options": [
"pillar",
"pond",
"underground",
"wall"
],
"label": "Type"
}
"label": "Type",
"strings": {
"options": {
"pillar": "Pillar/Aboveground",
"underground": "Underground",
"wall": "Wall",
"pond": "Pond"
}
}
}
+1 -8
View File
@@ -1,13 +1,6 @@
{
"key": "internet_access",
"type": "combo",
"options": [
"yes",
"no",
"wlan",
"wired",
"terminal"
],
"label": "Internet Access",
"strings": {
"options": {
@@ -18,4 +11,4 @@
"terminal": "Terminal"
}
}
}
}
+12 -10
View File
@@ -1,14 +1,16 @@
{
"key": "parking",
"type": "combo",
"options": [
"surface",
"multi-storey",
"underground",
"sheds",
"carports",
"garage_boxes",
"lane"
],
"label": "Type"
"label": "Type",
"strings": {
"options": {
"surface": "Surface",
"multi-storey": "Multilevel",
"underground": "Underground",
"sheds": "Sheds",
"carports": "Carports",
"garage_boxes": "Garage Boxes",
"lane": "Roadside Lane"
}
}
}
+14 -2
View File
@@ -1,5 +1,17 @@
{
"key": "piste:difficulty",
"type": "combo",
"label": "Difficulty"
}
"label": "Difficulty",
"placeholder": "Easy, Intermediate, Advanced...",
"strings": {
"options": {
"novice": "Novice (instructional)",
"easy": "Easy (green circle)",
"intermediate": "Intermediate (blue square)",
"advanced": "Advanced (black diamond)",
"expert": "Expert (double black diamond)",
"freeride": "Freeride (off-piste)",
"extreme": "Extreme (climing equipment required)"
}
}
}
+12 -2
View File
@@ -1,5 +1,15 @@
{
"key": "piste:grooming",
"type": "combo",
"label": "Grooming"
}
"label": "Grooming",
"strings": {
"options": {
"classic": "Classic",
"mogul": "Mogul",
"backcountry": "Backcountry",
"classic+skating": "Classic and Skating",
"scooter": "Scooter/Snowmobile",
"skating": "Skating"
}
}
}
+15 -2
View File
@@ -1,5 +1,18 @@
{
"key": "piste:type",
"type": "typeCombo",
"label": "Type"
}
"label": "Type",
"strings": {
"options": {
"downhill": "Downhill",
"nordic": "Nordic",
"skitour": "Skitour",
"sled": "Sled",
"hike": "Hike",
"sleigh": "Sleigh",
"ice_skate": "Ice Skate",
"snow_park": "Snow Park",
"playground": "Playground"
}
}
}
+2 -22
View File
@@ -1,25 +1,5 @@
{
"key": "religion",
"type": "combo",
"options": [
"christian",
"muslim",
"buddhist",
"jewish",
"hindu",
"shinto",
"taoist"
],
"label": "Religion",
"strings": {
"options": {
"christian": "Christian",
"muslim": "Muslim",
"buddhist": "Buddhist",
"jewish": "Jewish",
"hindu": "Hindu",
"shinto": "Shinto",
"taoist": "Taoist"
}
}
}
"label": "Religion"
}
+13 -2
View File
@@ -1,5 +1,16 @@
{
"key": "sac_scale",
"type": "combo",
"label": "Path Difficulty"
}
"label": "Path Difficulty",
"placeholder": "Mountain Hiking, Alpine Hiking...",
"strings": {
"options": {
"hiking": "T1: Hiking",
"mountain_hiking": "T2: Mountain Hiking",
"demanding_mountain_hiking": "T3: Demanding Mountain Hiking",
"alpine_hiking": "T4: Alpine Hiking",
"demanding_alpine_hiking": "T5: Demanding Alpine Hiking",
"difficult_alpine_hiking": "T6: Difficult Alpine Hiking"
}
}
}
+5 -5
View File
@@ -1,12 +1,12 @@
{
"key": "service",
"type": "combo",
"label": "Type",
"options": [
"parking_aisle",
"driveway",
"alley",
"drive-through",
"emergency_access"
],
"label": "Type"
}
"emergency_access",
"drive-through"
]
}
-9
View File
@@ -1,14 +1,5 @@
{
"key": "shelter_type",
"type": "combo",
"options": [
"public_transport",
"picnic_shelter",
"weather_shelter",
"lean_to",
"basic_hut",
"field_shelter",
"rock_shelter"
],
"label": "Type"
}
+12 -7
View File
@@ -1,11 +1,16 @@
{
"key": "smoking",
"type": "combo",
"options": [
"no",
"outside",
"separated",
"yes"
],
"label": "Smoking"
"label": "Smoking",
"placeholder": "No, Separated, Yes...",
"strings": {
"options": {
"no": "No smoking anywhere",
"separated": "In smoking areas, not physically isolated",
"isolated": "In smoking areas, physically isolated",
"outside": "Allowed outside",
"yes": "Allowed everywhere",
"dedicated": "Dedicated to smokers (e.g. smokers' club)"
}
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"key": "smoothness",
"type": "combo",
"label": "Smoothness",
"placeholder": "Thin Rollers, Wheels, Off-Road...",
"strings": {
"options": {
"excellent": "Thin Rollers: rollerblade, skateboard",
"good": "Thin Wheels: racing bike",
"intermediate": "Wheels: city bike, wheelchair, scooter",
"bad": "Robust Wheels: trekking bike, car, rickshaw",
"very_bad": "High Clearance: light duty off-road vehicle",
"horrible": "Off-Road: heavy duty off-road vehicle",
"very_horrible": "Specialized off-road: tractor, ATV",
"impassible": "Impassible / No wheeled vehicle"
}
}
}
+2 -2
View File
@@ -1,12 +1,12 @@
{
"key": "sport",
"type": "combo",
"label": "Sport",
"options": [
"skating",
"hockey",
"multi",
"curling",
"ice_stock"
],
"label": "Sport"
]
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"key": "type",
"type": "combo",
"label": "Type",
"options": [
"audio",
"video"
],
"label": "Type"
]
}
+10 -2
View File
@@ -1,5 +1,13 @@
{
"key": "toilets:disposal",
"type": "combo",
"label": "Disposal"
}
"label": "Disposal",
"strings": {
"options": {
"flush": "Flush",
"pitlatrine": "Pit/Latrine",
"chemical": "Chemical",
"bucket": "Bucket"
}
}
}
+12 -2
View File
@@ -1,5 +1,15 @@
{
"key": "tracktype",
"type": "combo",
"label": "Type"
}
"label": "Type",
"placeholder": "Solid, Mostly Solid, Soft...",
"strings": {
"options": {
"grade1": "Solid: paved or heavily compacted hardcore surface",
"grade2": "Mostly Solid: gravel/rock with some soft material mixed in",
"grade3": "Even mixture of hard and soft materials",
"grade4": "Mostly Soft: soil/sand/grass with some hard material mixed in",
"grade5": "Soft: soil/sand/grass"
}
}
}
+13 -2
View File
@@ -1,5 +1,16 @@
{
"key": "trail_visibility",
"type": "combo",
"label": "Trail Visibility"
}
"label": "Trail Visibility",
"placeholder": "Excellent, Good, Bad...",
"strings": {
"options": {
"excellent": "Excellent: unambiguous path or markers everywhere",
"good": "Good: markers visible, sometimes require searching",
"intermediate": "Intermediate: few markers, path mostly visible",
"bad": "Bad: no markers, path sometimes invisible/pathless",
"horrible": "Horrible: often pathless, some orientation skills required",
"no": "No: pathless, excellent orientation skills required"
}
}
}
+2 -2
View File
@@ -1,10 +1,10 @@
{
"key": "type",
"type": "combo",
"label": "Type",
"options": [
"broad_leaved",
"conifer",
"palm"
],
"label": "Type"
]
}
+1
View File
@@ -4337,6 +4337,7 @@
"icon": "highway-track",
"fields": [
"tracktype",
"smoothness",
"oneway",
"maxspeed",
"structure",
+2 -1
View File
@@ -2,6 +2,7 @@
"icon": "highway-track",
"fields": [
"tracktype",
"smoothness",
"oneway",
"maxspeed",
"structure",
@@ -16,4 +17,4 @@
},
"terms": [],
"name": "Track"
}
}
-3
View File
@@ -79,9 +79,6 @@
"default": {
"type": "string"
},
"indexed": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
+149 -24
View File
@@ -518,7 +518,12 @@
"label": "Type"
},
"aerialway/access": {
"label": "Access"
"label": "Access",
"options": {
"entry": "Entry",
"exit": "Exit",
"both": "Both"
}
},
"aerialway/bubble": {
"label": "Bubble"
@@ -539,7 +544,12 @@
"placeholder": "2, 4, 8..."
},
"aerialway/summer/access": {
"label": "Access (summer)"
"label": "Access (summer)",
"options": {
"entry": "Entry",
"exit": "Exit",
"both": "Both"
}
},
"aeroway": {
"label": "Type"
@@ -579,7 +589,25 @@
"placeholder": "50, 100, 200..."
},
"cardinal_direction": {
"label": "Direction"
"label": "Direction",
"options": {
"N": "North",
"E": "East",
"S": "South",
"W": "West",
"NE": "Northeast",
"SE": "Southeast",
"SW": "Southwest",
"NW": "Northwest",
"NNE": "North-northeast",
"ENE": "East-northeast",
"ESE": "East-southeast",
"SSE": "South-southeast",
"SSW": "South-southwest",
"WSW": "West-southwest",
"WNW": "West-northwest",
"NNW": "North-northwest"
}
},
"clock_direction": {
"label": "Direction",
@@ -619,7 +647,14 @@
"label": "Description"
},
"electrified": {
"label": "Electrification"
"label": "Electrification",
"placeholder": "Contact Line, Electrified Rail...",
"options": {
"contact_line": "Contact Line",
"rail": "Electrified Rail",
"yes": "Yes (unspecified)",
"no": "No"
}
},
"elevation": {
"label": "Elevation"
@@ -641,7 +676,13 @@
"label": "Fee"
},
"fire_hydrant/type": {
"label": "Type"
"label": "Type",
"options": {
"pillar": "Pillar/Aboveground",
"underground": "Underground",
"wall": "Wall",
"pond": "Pond"
}
},
"fixme": {
"label": "Fix Me"
@@ -810,20 +851,58 @@
"label": "Park and Ride"
},
"parking": {
"label": "Type"
"label": "Type",
"options": {
"surface": "Surface",
"multi-storey": "Multilevel",
"underground": "Underground",
"sheds": "Sheds",
"carports": "Carports",
"garage_boxes": "Garage Boxes",
"lane": "Roadside Lane"
}
},
"phone": {
"label": "Phone",
"placeholder": "+31 42 123 4567"
},
"piste/difficulty": {
"label": "Difficulty"
"label": "Difficulty",
"placeholder": "Easy, Intermediate, Advanced...",
"options": {
"novice": "Novice (instructional)",
"easy": "Easy (green circle)",
"intermediate": "Intermediate (blue square)",
"advanced": "Advanced (black diamond)",
"expert": "Expert (double black diamond)",
"freeride": "Freeride (off-piste)",
"extreme": "Extreme (climing equipment required)"
}
},
"piste/grooming": {
"label": "Grooming"
"label": "Grooming",
"options": {
"classic": "Classic",
"mogul": "Mogul",
"backcountry": "Backcountry",
"classic+skating": "Classic and Skating",
"scooter": "Scooter/Snowmobile",
"skating": "Skating"
}
},
"piste/type": {
"label": "Type"
"label": "Type",
"options": {
"downhill": "Downhill",
"nordic": "Nordic",
"skitour": "Skitour",
"sled": "Sled",
"hike": "Hike",
"sleigh": "Sleigh",
"ice_skate": "Ice Skate",
"snow_park": "Snow Park",
"playground": "Playground"
}
},
"place": {
"label": "Type"
@@ -856,16 +935,7 @@
"label": "Type"
},
"religion": {
"label": "Religion",
"options": {
"christian": "Christian",
"muslim": "Muslim",
"buddhist": "Buddhist",
"jewish": "Jewish",
"hindu": "Hindu",
"shinto": "Shinto",
"taoist": "Taoist"
}
"label": "Religion"
},
"restriction": {
"label": "Type"
@@ -880,7 +950,16 @@
"label": "Type"
},
"sac_scale": {
"label": "Path Difficulty"
"label": "Path Difficulty",
"placeholder": "Mountain Hiking, Alpine Hiking...",
"options": {
"hiking": "T1: Hiking",
"mountain_hiking": "T2: Mountain Hiking",
"demanding_mountain_hiking": "T3: Demanding Mountain Hiking",
"alpine_hiking": "T4: Alpine Hiking",
"demanding_alpine_hiking": "T5: Demanding Alpine Hiking",
"difficult_alpine_hiking": "T6: Difficult Alpine Hiking"
}
},
"seasonal": {
"label": "Seasonal"
@@ -901,7 +980,30 @@
"label": "Sloped Curb"
},
"smoking": {
"label": "Smoking"
"label": "Smoking",
"placeholder": "No, Separated, Yes...",
"options": {
"no": "No smoking anywhere",
"separated": "In smoking areas, not physically isolated",
"isolated": "In smoking areas, physically isolated",
"outside": "Allowed outside",
"yes": "Allowed everywhere",
"dedicated": "Dedicated to smokers (e.g. smokers' club)"
}
},
"smoothness": {
"label": "Smoothness",
"placeholder": "Thin Rollers, Wheels, Off-Road...",
"options": {
"excellent": "Thin Rollers: rollerblade, skateboard",
"good": "Thin Wheels: racing bike",
"intermediate": "Wheels: city bike, wheelchair, scooter",
"bad": "Robust Wheels: trekking bike, car, rickshaw",
"very_bad": "High Clearance: light duty off-road vehicle",
"horrible": "Off-Road: heavy duty off-road vehicle",
"very_horrible": "Specialized off-road: tractor, ATV",
"impassible": "Impassible / No wheeled vehicle"
}
},
"social_facility_for": {
"label": "People served",
@@ -940,7 +1042,13 @@
"label": "Tactile Paving"
},
"toilets/disposal": {
"label": "Disposal"
"label": "Disposal",
"options": {
"flush": "Flush",
"pitlatrine": "Pit/Latrine",
"chemical": "Chemical",
"bucket": "Bucket"
}
},
"tourism": {
"label": "Type"
@@ -949,10 +1057,27 @@
"label": "Tower type"
},
"tracktype": {
"label": "Type"
"label": "Type",
"placeholder": "Solid, Mostly Solid, Soft...",
"options": {
"grade1": "Solid: paved or heavily compacted hardcore surface",
"grade2": "Mostly Solid: gravel/rock with some soft material mixed in",
"grade3": "Even mixture of hard and soft materials",
"grade4": "Mostly Soft: soil/sand/grass with some hard material mixed in",
"grade5": "Soft: soil/sand/grass"
}
},
"trail_visibility": {
"label": "Trail Visibility"
"label": "Trail Visibility",
"placeholder": "Excellent, Good, Bad...",
"options": {
"excellent": "Excellent: unambiguous path or markers everywhere",
"good": "Good: markers visible, sometimes require searching",
"intermediate": "Intermediate: few markers, path mostly visible",
"bad": "Bad: no markers, path sometimes invisible/pathless",
"horrible": "Horrible: often pathless, some orientation skills required",
"no": "No: pathless, excellent orientation skills required"
}
},
"tree_type": {
"label": "Type"
+45 -19
View File
@@ -1,6 +1,9 @@
iD.ui.preset.combo =
iD.ui.preset.typeCombo = function(field) {
var event = d3.dispatch('change'),
optstrings = field.strings && field.strings.options,
optarray = field.options,
strings = {},
input;
function combo(selection) {
@@ -9,44 +12,66 @@ iD.ui.preset.typeCombo = function(field) {
input = selection.selectAll('input')
.data([0]);
input.enter().append('input')
var enter = input.enter()
.append('input')
.attr('type', 'text')
.attr('id', 'preset-input-' + field.id);
if (optstrings) { enter.attr('readonly', 'readonly'); }
input
.call(combobox)
.on('change', change)
.on('blur', change)
.each(function() {
if (field.options) {
options(field.options);
if (optstrings) {
_.each(optstrings, function(v, k) {
strings[k] = field.t('options.' + k, { 'default': v });
});
stringsLoaded();
} else if (optarray) {
_.each(optarray, function(k) {
strings[k] = k.replace(/_+/g, ' ');
});
stringsLoaded();
} else {
iD.taginfo().values({
key: field.key
}, function(err, data) {
if (!err) options(_.pluck(data, 'value'));
iD.taginfo().values({key: field.key}, function(err, data) {
if (!err) {
_.each(_.pluck(data, 'value'), function(k) {
strings[k] = k.replace(/_+/g, ' ');
});
stringsLoaded();
}
});
}
});
function options(opts) {
combobox.data(opts.map(function(d) {
var o = {};
o.title = o.value = d.replace(/_+/g, ' ');
function stringsLoaded() {
var keys = _.keys(strings),
strs = [],
placeholders;
combobox.data(keys.map(function(k) {
var s = strings[k],
o = {};
o.title = o.value = s;
if (s.length < 20) { strs.push(s); }
return o;
}));
placeholders = strs.length > 1 ? strs : keys;
input.attr('placeholder', field.placeholder() ||
(opts.length < 3 ? '' : opts.slice(0, 3).join(', ') + '...'));
(placeholders.slice(0, 3).join(', ') + '...'));
}
}
function change() {
var value = input.value()
.split(';')
.map(function(s) { return s.trim(); })
.join(';')
.replace(/\s+/g, '_');
var optstring = _.find(_.keys(strings), function(k) { return strings[k] === input.value(); }),
value = optstring || (input.value()
.split(';')
.map(function(s) { return s.trim(); })
.join(';')
.replace(/\s+/g, '_'));
if (field.type === 'typeCombo' && !value) value = 'yes';
@@ -56,8 +81,9 @@ iD.ui.preset.typeCombo = function(field) {
}
combo.tags = function(tags) {
var value = tags[field.key] || '';
if (field.type === 'typeCombo' && value === 'yes') value = '';
var key = tags[field.key],
value = strings[key] || key || '';
if (field.type === 'typeCombo' && value.toLowerCase() === 'yes') value = '';
input.value(value);
};
+6 -2
View File
@@ -44,8 +44,12 @@ d3.combobox = function() {
// on mousedown
d3.event.stopPropagation();
d3.event.preventDefault();
input.node().focus();
fetch('', render);
if (!shown) {
input.node().focus();
fetch('', render);
} else {
hide();
}
});
});