From b5f0ae596f3e06cdfad4b61f2442c2e8812998df Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 9 Oct 2013 17:10:49 -0700 Subject: [PATCH] Special case 'yes' values for type fields (#1876) --- data/presets/fields.json | 36 +++++++++++++++---------------- data/presets/fields/aeroway.json | 2 +- data/presets/fields/amenity.json | 2 +- data/presets/fields/barrier.json | 2 +- data/presets/fields/building.json | 2 +- data/presets/fields/entrance.json | 2 +- data/presets/fields/highway.json | 2 +- data/presets/fields/historic.json | 2 +- data/presets/fields/landuse.json | 2 +- data/presets/fields/leisure.json | 2 +- data/presets/fields/man_made.json | 2 +- data/presets/fields/natural.json | 2 +- data/presets/fields/office.json | 2 +- data/presets/fields/place.json | 2 +- data/presets/fields/power.json | 2 +- data/presets/fields/railway.json | 2 +- data/presets/fields/shop.json | 2 +- data/presets/fields/tourism.json | 2 +- data/presets/fields/waterway.json | 2 +- data/presets/schema/field.json | 3 ++- js/id/ui/preset/combo.js | 12 ++++++++--- 21 files changed, 47 insertions(+), 40 deletions(-) diff --git a/data/presets/fields.json b/data/presets/fields.json index 21bd802e1..ab59805d6 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -86,12 +86,12 @@ }, "aeroway": { "key": "aeroway", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "amenity": { "key": "amenity", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "artist": { @@ -116,7 +116,7 @@ }, "barrier": { "key": "barrier", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "bicycle_parking": { @@ -131,7 +131,7 @@ }, "building": { "key": "building", - "type": "combo", + "type": "typeCombo", "label": "Building" }, "building_area": { @@ -245,7 +245,7 @@ }, "entrance": { "key": "entrance", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "fax": { @@ -292,12 +292,12 @@ }, "highway": { "key": "highway", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "historic": { "key": "historic", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "iata": { @@ -338,7 +338,7 @@ }, "landuse": { "key": "landuse", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "lanes": { @@ -354,7 +354,7 @@ }, "leisure": { "key": "leisure", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "levels": { @@ -375,7 +375,7 @@ }, "man_made": { "key": "man_made", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "maxspeed": { @@ -392,7 +392,7 @@ }, "natural": { "key": "natural", - "type": "combo", + "type": "typeCombo", "label": "Natural" }, "network": { @@ -409,7 +409,7 @@ }, "office": { "key": "office", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "oneway": { @@ -462,17 +462,17 @@ }, "place": { "key": "place", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "power": { "key": "power", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "railway": { "key": "railway", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "ref": { @@ -549,7 +549,7 @@ }, "shop": { "key": "shop", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "source": { @@ -600,7 +600,7 @@ }, "tourism": { "key": "tourism", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "towertype": { @@ -630,7 +630,7 @@ }, "waterway": { "key": "waterway", - "type": "combo", + "type": "typeCombo", "label": "Type" }, "website": { diff --git a/data/presets/fields/aeroway.json b/data/presets/fields/aeroway.json index a7d73294a..a35cc193a 100644 --- a/data/presets/fields/aeroway.json +++ b/data/presets/fields/aeroway.json @@ -1,5 +1,5 @@ { "key": "aeroway", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/amenity.json b/data/presets/fields/amenity.json index e18911da4..057ee800b 100644 --- a/data/presets/fields/amenity.json +++ b/data/presets/fields/amenity.json @@ -1,5 +1,5 @@ { "key": "amenity", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/barrier.json b/data/presets/fields/barrier.json index 8ff09484c..e87f17c6b 100644 --- a/data/presets/fields/barrier.json +++ b/data/presets/fields/barrier.json @@ -1,5 +1,5 @@ { "key": "barrier", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/building.json b/data/presets/fields/building.json index 5325c1f26..47656dd25 100644 --- a/data/presets/fields/building.json +++ b/data/presets/fields/building.json @@ -1,5 +1,5 @@ { "key": "building", - "type": "combo", + "type": "typeCombo", "label": "Building" } \ No newline at end of file diff --git a/data/presets/fields/entrance.json b/data/presets/fields/entrance.json index 392264e9f..5809e086a 100644 --- a/data/presets/fields/entrance.json +++ b/data/presets/fields/entrance.json @@ -1,5 +1,5 @@ { "key": "entrance", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/highway.json b/data/presets/fields/highway.json index 61618eeae..a70354f6d 100644 --- a/data/presets/fields/highway.json +++ b/data/presets/fields/highway.json @@ -1,5 +1,5 @@ { "key": "highway", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/historic.json b/data/presets/fields/historic.json index 178a571ca..3c4caccdd 100644 --- a/data/presets/fields/historic.json +++ b/data/presets/fields/historic.json @@ -1,5 +1,5 @@ { "key": "historic", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/landuse.json b/data/presets/fields/landuse.json index 5054b30af..43956fd6c 100644 --- a/data/presets/fields/landuse.json +++ b/data/presets/fields/landuse.json @@ -1,5 +1,5 @@ { "key": "landuse", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/leisure.json b/data/presets/fields/leisure.json index 9697ac2bc..8549f14de 100644 --- a/data/presets/fields/leisure.json +++ b/data/presets/fields/leisure.json @@ -1,5 +1,5 @@ { "key": "leisure", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/man_made.json b/data/presets/fields/man_made.json index 930ea0462..eb612b08a 100644 --- a/data/presets/fields/man_made.json +++ b/data/presets/fields/man_made.json @@ -1,5 +1,5 @@ { "key": "man_made", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/natural.json b/data/presets/fields/natural.json index ce95a7533..f782ddc8f 100644 --- a/data/presets/fields/natural.json +++ b/data/presets/fields/natural.json @@ -1,5 +1,5 @@ { "key": "natural", - "type": "combo", + "type": "typeCombo", "label": "Natural" } \ No newline at end of file diff --git a/data/presets/fields/office.json b/data/presets/fields/office.json index de00631a5..b032efa1e 100644 --- a/data/presets/fields/office.json +++ b/data/presets/fields/office.json @@ -1,5 +1,5 @@ { "key": "office", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/place.json b/data/presets/fields/place.json index 4d08fd8cf..178ebad9b 100644 --- a/data/presets/fields/place.json +++ b/data/presets/fields/place.json @@ -1,5 +1,5 @@ { "key": "place", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/power.json b/data/presets/fields/power.json index 7af96760e..840f8dc3f 100644 --- a/data/presets/fields/power.json +++ b/data/presets/fields/power.json @@ -1,5 +1,5 @@ { "key": "power", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/railway.json b/data/presets/fields/railway.json index 0fee3d7bf..4d7733841 100644 --- a/data/presets/fields/railway.json +++ b/data/presets/fields/railway.json @@ -1,5 +1,5 @@ { "key": "railway", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/shop.json b/data/presets/fields/shop.json index 97e3abda2..f8e974cd4 100644 --- a/data/presets/fields/shop.json +++ b/data/presets/fields/shop.json @@ -1,5 +1,5 @@ { "key": "shop", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/tourism.json b/data/presets/fields/tourism.json index b5ddd4a91..5bf0aec8f 100644 --- a/data/presets/fields/tourism.json +++ b/data/presets/fields/tourism.json @@ -1,5 +1,5 @@ { "key": "tourism", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/fields/waterway.json b/data/presets/fields/waterway.json index e7fff8dca..133af3e4b 100644 --- a/data/presets/fields/waterway.json +++ b/data/presets/fields/waterway.json @@ -1,5 +1,5 @@ { "key": "waterway", - "type": "combo", + "type": "typeCombo", "label": "Type" } \ No newline at end of file diff --git a/data/presets/schema/field.json b/data/presets/schema/field.json index 24b054d68..b54d44a17 100644 --- a/data/presets/schema/field.json +++ b/data/presets/schema/field.json @@ -32,7 +32,8 @@ "radio", "textarea", "localized", - "wikipedia" + "wikipedia", + "typeCombo" ], "required": true }, diff --git a/js/id/ui/preset/combo.js b/js/id/ui/preset/combo.js index 8507bf1e3..c6f1e4e63 100644 --- a/js/id/ui/preset/combo.js +++ b/js/id/ui/preset/combo.js @@ -1,4 +1,5 @@ -iD.ui.preset.combo = function(field) { +iD.ui.preset.combo = +iD.ui.preset.typeCombo = function(field) { var event = d3.dispatch('change'), input; @@ -43,13 +44,18 @@ iD.ui.preset.combo = function(field) { } function change() { + var value = input.value().replace(' ', '_'); + if (field.type === 'typeCombo' && !value) value = 'yes'; + var t = {}; - t[field.key] = input.value().replace(' ', '_') || undefined; + t[field.key] = value || undefined; event.change(t); } combo.tags = function(tags) { - input.value(tags[field.key] || ''); + var value = tags[field.key] || ''; + if (field.type === 'typeCombo' && value === 'yes') value = ''; + input.value(value); }; combo.focus = function() {