diff --git a/data/presets/fields.json b/data/presets/fields.json index 6bd523bfd..42489382c 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -327,7 +327,7 @@ }, "structure": { "type": "radio", - "options": [ + "keys": [ "bridge", "tunnel", "embankment", diff --git a/data/presets/fields/structure.json b/data/presets/fields/structure.json index 8ea1b28ea..7c65c5390 100644 --- a/data/presets/fields/structure.json +++ b/data/presets/fields/structure.json @@ -1,6 +1,6 @@ { "type": "radio", - "options": [ + "keys": [ "bridge", "tunnel", "embankment", diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index c0105206b..99ccc564a 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -114,6 +114,14 @@ iD.ui.preset = function(context) { } }); + formwrap.selectAll('div.preset-field') + .classed('modified', function(d) { + var original = context.graph().base().entities[entity.id]; + return _.any(d.keys || [d.key], function(key) { + return original ? tags[key] !== original.tags[key] : tags[key]; + }); + }); + event.setTags(tags); return presets; }; diff --git a/js/id/ui/preset/radio.js b/js/id/ui/preset/radio.js index 9e8eb97ac..24036a375 100644 --- a/js/id/ui/preset/radio.js +++ b/js/id/ui/preset/radio.js @@ -9,7 +9,7 @@ iD.ui.preset.radio = function(field) { var buttonwrap = selection.append('div').attr('class','radio-wrap'); buttons = buttonwrap.selectAll('button') - .data(field.options) + .data(field.keys || field.options) .enter() .append('button') .text(function(d) { return field.t('options.' + d, { 'default': d }); })