mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-15 21:48:20 +02:00
Extract iD.actions.ChangePreset
This commit is contained in:
@@ -123,6 +123,7 @@
|
||||
<script src='js/id/actions/add_entity.js'></script>
|
||||
<script src='js/id/actions/add_vertex.js'></script>
|
||||
<script src='js/id/actions/change_member.js'></script>
|
||||
<script src='js/id/actions/change_preset.js'></script>
|
||||
<script src='js/id/actions/change_tags.js'></script>
|
||||
<script src='js/id/actions/connect.js'></script>
|
||||
<script src='js/id/actions/delete_member.js'></script>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
iD.actions.ChangePreset = function(entityId, oldPreset, newPreset) {
|
||||
return function(graph) {
|
||||
var entity = graph.entity(entityId),
|
||||
geometry = entity.geometry(graph),
|
||||
tags = entity.tags;
|
||||
|
||||
tags = oldPreset.removeTags(tags, geometry);
|
||||
tags = newPreset.applyTags(tags, geometry);
|
||||
|
||||
return graph.replace(entity.update({tags: tags}));
|
||||
};
|
||||
};
|
||||
@@ -158,18 +158,7 @@ iD.ui.EntityEditor = function(context) {
|
||||
|
||||
entityEditor.preset = function(_) {
|
||||
if (!arguments.length) return preset;
|
||||
|
||||
var entity = context.entity(id),
|
||||
geometry = context.geometry(id),
|
||||
tags = preset.removeTags(entity.tags, geometry);
|
||||
|
||||
preset = _;
|
||||
tags = preset.applyTags(tags, geometry);
|
||||
|
||||
context.perform(
|
||||
iD.actions.ChangeTags(id, tags),
|
||||
t('operations.change_tags.annotation'));
|
||||
|
||||
return entityEditor;
|
||||
};
|
||||
|
||||
|
||||
+10
-5
@@ -1,7 +1,7 @@
|
||||
iD.ui.PresetList = function(context) {
|
||||
var event = d3.dispatch('choose'),
|
||||
id,
|
||||
preset,
|
||||
currentPreset,
|
||||
autofocus = false;
|
||||
|
||||
function presetList(selection) {
|
||||
@@ -16,7 +16,7 @@ iD.ui.PresetList = function(context) {
|
||||
var message = messagewrap.append('h3')
|
||||
.text(t('inspector.choose'));
|
||||
|
||||
if (preset) {
|
||||
if (currentPreset) {
|
||||
messagewrap.append('button')
|
||||
.attr('class', 'preset-choose')
|
||||
.on('click', event.choose)
|
||||
@@ -106,7 +106,7 @@ iD.ui.PresetList = function(context) {
|
||||
|
||||
items.enter().append('div')
|
||||
.attr('class', function(item) { return 'preset-list-item preset-' + item.preset.id.replace('/', '-'); })
|
||||
.classed('current', function(item) { return item.preset === preset; })
|
||||
.classed('current', function(item) { return item.preset === currentPreset; })
|
||||
.each(function(item) {
|
||||
d3.select(this).call(item);
|
||||
})
|
||||
@@ -193,6 +193,11 @@ iD.ui.PresetList = function(context) {
|
||||
|
||||
item.choose = function() {
|
||||
context.presets().choose(preset);
|
||||
|
||||
context.perform(
|
||||
iD.actions.ChangePreset(id, currentPreset, preset),
|
||||
t('operations.change_tags.annotation'));
|
||||
|
||||
event.choose(preset);
|
||||
};
|
||||
|
||||
@@ -220,8 +225,8 @@ iD.ui.PresetList = function(context) {
|
||||
};
|
||||
|
||||
presetList.preset = function(_) {
|
||||
if (!arguments.length) return preset;
|
||||
preset = _;
|
||||
if (!arguments.length) return currentPreset;
|
||||
currentPreset = _;
|
||||
return presetList;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user