mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 01:02:58 +00:00
Don't clear power output tag when changing between power presets (close #8159)
This commit is contained in:
@@ -4,7 +4,8 @@ export function actionChangePreset(entityID, oldPreset, newPreset, skipFieldDefa
|
||||
var geometry = entity.geometry(graph);
|
||||
var tags = entity.tags;
|
||||
|
||||
if (oldPreset) tags = oldPreset.unsetTags(tags, geometry);
|
||||
// preserve tags that the new preset might care about, if any
|
||||
if (oldPreset) tags = oldPreset.unsetTags(tags, geometry, newPreset && newPreset.addTags ? Object.keys(newPreset.addTags) : null);
|
||||
if (newPreset) tags = newPreset.setTags(tags, geometry, skipFieldDefaults);
|
||||
|
||||
return graph.replace(entity.update({tags: tags}));
|
||||
|
||||
@@ -172,8 +172,10 @@ export function presetPreset(presetID, preset, addable, allFields, allPresets) {
|
||||
};
|
||||
|
||||
|
||||
_this.unsetTags = (tags, geometry, skipFieldDefaults) => {
|
||||
tags = utilObjectOmit(tags, Object.keys(_this.removeTags));
|
||||
_this.unsetTags = (tags, geometry, ignoringKeys, skipFieldDefaults) => {
|
||||
// allow manually keeping some tags
|
||||
let removeTags = ignoringKeys ? utilObjectOmit(_this.removeTags, ignoringKeys) : _this.removeTags;
|
||||
tags = utilObjectOmit(tags, Object.keys(removeTags));
|
||||
|
||||
if (geometry && !skipFieldDefaults) {
|
||||
_this.fields().forEach(field => {
|
||||
@@ -194,7 +196,10 @@ export function presetPreset(presetID, preset, addable, allFields, allPresets) {
|
||||
|
||||
for (let k in addTags) {
|
||||
if (addTags[k] === '*') {
|
||||
tags[k] = 'yes';
|
||||
// if this tag is ancillary, don't override an existing value since any value is okay
|
||||
if (_this.tags[k] || !tags[k] || tags[k] === 'no') {
|
||||
tags[k] = 'yes';
|
||||
}
|
||||
} else {
|
||||
tags[k] = addTags[k];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user