diff --git a/js/id/ui/inspector.js b/js/id/ui/inspector.js index a563715ef..6ab4f512a 100644 --- a/js/id/ui/inspector.js +++ b/js/id/ui/inspector.js @@ -3,6 +3,7 @@ iD.ui.inspector = function() { taginfo = iD.taginfo(), presetData = iD.presetData(), initial = false, + presetUI, graph, tagList; @@ -41,7 +42,7 @@ iD.ui.inspector = function() { var inspectorwrap = inspectorbody.append('div') .attr('class', 'inspector-inner tag-wrap fillL2'); - var presetUI = iD.ui.preset() + presetUI = iD.ui.preset() .on('change', function(tags) { inspector.tags(_.extend(inspector.tags(), tags)); event.change(); @@ -130,6 +131,7 @@ iD.ui.inspector = function() { function drawTags(tags) { var entity = tagList.datum(); + tags = _.omit(tags, _.keys(presetUI.tags() || {})); tags = d3.entries(tags); if (!tags.length) { @@ -311,7 +313,7 @@ iD.ui.inspector = function() { inspector.tags = function(tags) { if (!arguments.length) { - tags = {}; + tags = presetUI.tags(); tagList.selectAll('li').each(function() { var row = d3.select(this), key = row.selectAll('.key').property('value'), diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index 5c71446a0..75de04d35 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -5,7 +5,7 @@ iD.ui.preset = function() { preset; function getTags() { - var tags = {}; + var tags = _.clone(preset.tags); sections.selectAll('input,select') .each(function(d) { tags[d.key] = this.value; @@ -110,6 +110,7 @@ iD.ui.preset = function() { .attr('class', 'col8 preset-input'), d); }); if (exttags) setTags(exttags); + key(); } presets.preset = function(_) { @@ -124,5 +125,10 @@ iD.ui.preset = function() { return presets; }; + presets.tags = function() { + if (!preset || !sections) return {}; + return clean(getTags()); + }; + return d3.rebind(presets, event, 'on'); };