mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-16 22:03:37 +02:00
Report an existing tagged vertex that is moved as modified
This commit is contained in:
@@ -6,7 +6,7 @@ iD.util.relevantChanges = function(graph, changes, base) {
|
||||
function addEntity(entity, changeType) {
|
||||
relevant[entity.id] = {
|
||||
entity: entity,
|
||||
changeType: changeType,
|
||||
changeType: changeType
|
||||
};
|
||||
}
|
||||
|
||||
@@ -21,14 +21,20 @@ iD.util.relevantChanges = function(graph, changes, base) {
|
||||
|
||||
_.each(changes, function(entities, change) {
|
||||
_.each(entities, function(entity) {
|
||||
var relevantGraph = change === 'deleted' ? base : graph;
|
||||
if (entity.geometry(relevantGraph) === 'vertex') {
|
||||
addParents(entity, relevantGraph);
|
||||
if (change === 'modified' && (entity.tags !== base.entity(entity.id).tags)) {
|
||||
if (entity.geometry(change === 'deleted' ? base : graph) !== 'vertex') {
|
||||
addEntity(entity, change);
|
||||
|
||||
} else if (change === 'modified') {
|
||||
var moved = entity.loc !== base.entity(entity.id).loc,
|
||||
retagged = entity.tags !== base.entity(entity.id).tags;
|
||||
|
||||
if (moved) {
|
||||
addParents(entity, graph);
|
||||
}
|
||||
|
||||
if (retagged || (moved && entity.hasInterestingTags())) {
|
||||
addEntity(entity, change);
|
||||
}
|
||||
} else {
|
||||
addEntity(entity, change);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
describe("iD.util.relevantChanges", function() {
|
||||
var base = iD.Graph({
|
||||
'a': iD.Node({id: 'a', loc: [0, 0]}),
|
||||
'a': iD.Node({id: 'a', loc: [0, 0], tags: {crossing: 'zebra'}}),
|
||||
'b': iD.Node({id: 'b', loc: [2, 0]}),
|
||||
'c': iD.Node({id: 'c', loc: [2, 2]}),
|
||||
'd': iD.Node({id: 'd', loc: [0, 2]}),
|
||||
@@ -84,7 +84,7 @@ describe("iD.util.relevantChanges", function() {
|
||||
});
|
||||
|
||||
it("reports an existing vertex with added tags as modified", function() {
|
||||
var vertex = iD.Node({id: 'f', tags: {yes: 'it works'}}),
|
||||
var vertex = base.entity('a').mergeTags({highway: 'traffic_signals'}),
|
||||
graph = base.replace(vertex),
|
||||
changes = { modified: [vertex] },
|
||||
a = iD.util.relevantChanges(graph, changes, base);
|
||||
@@ -93,4 +93,15 @@ describe("iD.util.relevantChanges", function() {
|
||||
entity: vertex
|
||||
}]);
|
||||
});
|
||||
|
||||
it("reports an existing tagged vertex that is moved as modified", function() {
|
||||
var vertex = base.entity('a').move([1, 2]),
|
||||
graph = base.replace(vertex),
|
||||
changes = { modified: [vertex] },
|
||||
a = iD.util.relevantChanges(graph, changes, base);
|
||||
expect(a[1]).to.eql({
|
||||
changeType: 'modified',
|
||||
entity: vertex
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user