mirror of
https://github.com/FoggedLens/iD.git
synced 2026-06-03 21:48:03 +02:00
taglist and presetui coexist
This commit is contained in:
+18
-20
@@ -4,11 +4,12 @@ iD.ui.Inspector = function() {
|
||||
presetData = iD.presetData(),
|
||||
initial = false,
|
||||
presetUI,
|
||||
context,
|
||||
tagList = iD.ui.Taglist();
|
||||
tagList,
|
||||
context;
|
||||
|
||||
function inspector(selection) {
|
||||
var entity = selection.datum();
|
||||
var entity = selection.datum(),
|
||||
presetMatch = presetData.matchTags(entity);
|
||||
|
||||
var iwrap = selection.append('div')
|
||||
.attr('class','inspector content hide'),
|
||||
@@ -44,14 +45,14 @@ iD.ui.Inspector = function() {
|
||||
|
||||
presetUI = iD.ui.preset()
|
||||
.on('change', function(tags) {
|
||||
inspector.tags(_.extend(inspector.tags(), tags));
|
||||
event.change();
|
||||
});
|
||||
|
||||
event.on('change.preset', function() {
|
||||
var tags = inspector.tags();
|
||||
presetUI.change(tags);
|
||||
});
|
||||
tagList = iD.ui.Taglist()
|
||||
.context(context)
|
||||
.on('change', function(tags) {
|
||||
event.change();
|
||||
});
|
||||
|
||||
var inspectorpresetsearch = inspectorwrap.append('div')
|
||||
.attr('class', 'inspector-preset cf')
|
||||
@@ -80,22 +81,19 @@ iD.ui.Inspector = function() {
|
||||
var inspectorpreset = inspectorwrap.append('div')
|
||||
.attr('class', 'inspector-preset cf');
|
||||
|
||||
inspectorwrap.append('h4')
|
||||
.text(t('inspector.edit_tags'));
|
||||
if (presetMatch) {
|
||||
inspectorpreset.call(presetUI
|
||||
.preset(presetMatch));
|
||||
}
|
||||
|
||||
inspectorwrap.call(tagList);
|
||||
var taglistwrap = inspectorwrap.append('div').call(tagList);
|
||||
|
||||
inspector.tags(entity.tags);
|
||||
|
||||
inspectorbody.append('div')
|
||||
.attr('class', 'inspector-buttons pad1 fillD')
|
||||
.call(drawButtons);
|
||||
|
||||
var presetMatch = presetData.matchTags(entity);
|
||||
if (presetMatch) {
|
||||
inspectorpreset.call(presetUI
|
||||
.preset(presetMatch)
|
||||
.change(inspector.tags()));
|
||||
}
|
||||
|
||||
iwrap.call(iD.ui.Toggle(true));
|
||||
}
|
||||
|
||||
@@ -140,7 +138,8 @@ iD.ui.Inspector = function() {
|
||||
if (!arguments.length) {
|
||||
return _.extend(presetUI.tags(), tagList.tags());
|
||||
} else {
|
||||
tagList.tags(tags);
|
||||
presetUI.change(tags);
|
||||
tagList.tags(_.omit(tags, _.keys(presetUI.tags() || {})));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -156,7 +155,6 @@ iD.ui.Inspector = function() {
|
||||
|
||||
inspector.context = function(_) {
|
||||
context = _;
|
||||
tagList.context(context);
|
||||
return inspector;
|
||||
};
|
||||
|
||||
|
||||
@@ -98,7 +98,6 @@ iD.ui.preset = function() {
|
||||
showRawTags.text(hidden ? 'Hide raw tags' : 'Show raw tags');
|
||||
if (hidden) sections.style('display', 'none');
|
||||
else sections.style('display', '');
|
||||
event.change(clean(getTags()));
|
||||
});
|
||||
sections = selection.selectAll('div.preset-section')
|
||||
.data(preset.main)
|
||||
@@ -118,7 +117,6 @@ iD.ui.preset = function() {
|
||||
.attr('class', 'col8 preset-input'), d);
|
||||
});
|
||||
if (exttags) setTags(exttags);
|
||||
key();
|
||||
}
|
||||
|
||||
presets.preset = function(_) {
|
||||
|
||||
+6
-16
@@ -1,22 +1,19 @@
|
||||
iD.ui.Taglist = function() {
|
||||
var event = d3.dispatch('changeTags', 'close', 'change'),
|
||||
var event = d3.dispatch('change'),
|
||||
taginfo = iD.taginfo(),
|
||||
initial = false,
|
||||
list,
|
||||
context;
|
||||
|
||||
function taglist(selection) {
|
||||
var entity = selection.datum();
|
||||
|
||||
var wrap = selection.append('div');
|
||||
|
||||
wrap.append('h4')
|
||||
selection.append('h4')
|
||||
.text(t('inspector.edit_tags'));
|
||||
|
||||
list = wrap.append('ul')
|
||||
list = selection.append('ul')
|
||||
.attr('class', 'tag-list');
|
||||
|
||||
var newTag = wrap.append('button')
|
||||
var newTag = selection.append('button')
|
||||
.attr('class', 'add-tag');
|
||||
|
||||
newTag.on('click', function() {
|
||||
@@ -31,8 +28,6 @@ iD.ui.Taglist = function() {
|
||||
.attr('class', 'label')
|
||||
.text(t('inspector.new_tag'));
|
||||
|
||||
drawTags(entity.tags);
|
||||
|
||||
}
|
||||
|
||||
function drawTags(tags) {
|
||||
@@ -233,22 +228,17 @@ iD.ui.Taglist = function() {
|
||||
}
|
||||
|
||||
function addTag() {
|
||||
var tags = inspector.tags();
|
||||
var tags = taglist.tags();
|
||||
tags[''] = '';
|
||||
drawTags(tags);
|
||||
}
|
||||
|
||||
function removeTag(d) {
|
||||
var tags = inspector.tags();
|
||||
var tags = taglist.tags();
|
||||
delete tags[d.key];
|
||||
drawTags(tags);
|
||||
}
|
||||
|
||||
function apply(entity) {
|
||||
event.changeTags(entity, taglist.tags());
|
||||
event.close(entity);
|
||||
}
|
||||
|
||||
taglist.tags = function(tags) {
|
||||
if (!arguments.length) {
|
||||
tags = {};
|
||||
|
||||
Reference in New Issue
Block a user