diff --git a/css/app.css b/css/app.css index 75ac1d1ac..df0c7a4e4 100644 --- a/css/app.css +++ b/css/app.css @@ -1302,7 +1302,7 @@ input[type=number] { } .form-field .addr-number { - width: 20%; + width: 33%; border-left: 0; border-right: 0; border-bottom: 0; @@ -1310,19 +1310,26 @@ input[type=number] { } .form-field .addr-street { - width: 80%; + width: 66%; border-right: 0; border-bottom: 0; border-radius: 0; } .form-field .addr-city { + width: 66%; border-left: 0; border-right: 0; border-bottom: 0; - border-radius: 0 0 4px 4px; + border-radius: 0 0 0 4px; } +.form-field .addr-postcode { + width: 33%; + border-right: 0; + border-bottom: 0; + border-radius: 0 0 4px 0; +} /* combobox dropdown */ div.combobox { diff --git a/data/locales/en.js b/data/locales/en.js index efbf2f3f5..1c70fd71f 100644 --- a/data/locales/en.js +++ b/data/locales/en.js @@ -375,7 +375,8 @@ locale.en = { "housename": "Housename", "number": "123", "street": "Street", - "city": "City" + "city": "City", + "postcode": "Postal code" } }, "admin_level": { diff --git a/data/presets.yaml b/data/presets.yaml index 2aec85899..d5c8785fc 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -46,6 +46,7 @@ en: number: "123" street: Street city: City + postcode: Postal code admin_level: label: Admin Level aeroway: diff --git a/data/presets/fields.json b/data/presets/fields.json index 64032c33b..829648283 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -51,7 +51,8 @@ "addr:housename", "addr:housenumber", "addr:street", - "addr:city" + "addr:city", + "addr:postcode" ], "icon": "address", "universal": true, @@ -61,7 +62,8 @@ "housename": "Housename", "number": "123", "street": "Street", - "city": "City" + "city": "City", + "postcode": "Postal code" } } }, diff --git a/data/presets/fields/address.json b/data/presets/fields/address.json index 87e1d7f91..213ea8ea5 100644 --- a/data/presets/fields/address.json +++ b/data/presets/fields/address.json @@ -4,7 +4,8 @@ "addr:housename", "addr:housenumber", "addr:street", - "addr:city" + "addr:city", + "addr:postcode" ], "icon": "address", "universal": true, @@ -14,7 +15,8 @@ "housename": "Housename", "number": "123", "street": "Street", - "city": "City" + "city": "City", + "postcode": "Postal code" } } -} \ No newline at end of file +} diff --git a/js/id/ui/preset/address.js b/js/id/ui/preset/address.js index 0abf3efc3..03ce3b56f 100644 --- a/js/id/ui/preset/address.js +++ b/js/id/ui/preset/address.js @@ -5,6 +5,7 @@ iD.ui.preset.address = function(field, context) { housenumber, street, city, + postcode, entity; function getStreets() { @@ -76,6 +77,14 @@ iD.ui.preset.address = function(field, context) { .on('blur', change) .on('change', change) .call(close()); + + postcode = wrap.append('input') + .property('type', 'text') + .attr('placeholder', field.t('placeholders.postcode')) + .attr('class', 'addr-postcode') + .on('blur', change) + .on('change', change) + .call(close()); } function change() { @@ -83,7 +92,8 @@ iD.ui.preset.address = function(field, context) { 'addr:housename': housename.property('value'), 'addr:housenumber': housenumber.property('value'), 'addr:street': street.property('value'), - 'addr:city': city.property('value') + 'addr:city': city.property('value'), + 'addr:postcode': postcode.property('value') }); } @@ -98,6 +108,7 @@ iD.ui.preset.address = function(field, context) { housenumber.property('value', tags['addr:housenumber'] || ''); street.property('value', tags['addr:street'] || ''); city.property('value', tags['addr:city'] || ''); + postcode.property('value', tags['addr:postcode'] || ''); return address; };