Move node removal into removeNodeWay action

This commit is contained in:
John Firebaugh
2012-12-04 18:07:26 -05:00
parent f49270fc6c
commit 76849596f8
5 changed files with 12 additions and 4 deletions

View File

@@ -37,9 +37,8 @@ iD.actions.addWayNode = function(way, node, index) {
iD.actions.removeWayNode = function(way, node) {
return function(graph) {
return graph.replace(way.update({
nodes: way.nodes.slice()
})).remove(node, 'removed from a road');
var nodes = _.without(way.nodes, node.id);
return graph.replace(way.update({nodes: nodes}), 'removed from a road');
};
};

View File

@@ -367,7 +367,6 @@ iD.Map = function() {
history.graph().parents(entity.id)
.filter(function(d) { return d.type === 'way'; })
.forEach(function(parent) {
parent.nodes = _.without(parent.nodes, entity.id);
history.perform(iD.actions.removeWayNode(parent, entity));
});
deselectClick();

View File

@@ -64,6 +64,7 @@
<!-- include spec files here... -->
<script src="spec/actions/add_way_node.js"></script>
<script src="spec/actions/remove_way_node.js"></script>
<script src="spec/format/geojson.js"></script>
<script src="spec/format/xml.js"></script>
<script src="spec/graph/graph.js"></script>

View File

@@ -26,6 +26,7 @@
<!-- include spec files here... -->
<script src="spec/actions/add_way_node.js"></script>
<script src="spec/actions/remove_way_node.js"></script>
<script src="spec/format/geojson.js"></script>
<script src="spec/format/xml.js"></script>
<script src="spec/graph/graph.js"></script>

View File

@@ -0,0 +1,8 @@
describe("iD.actions.removeWayNode", function () {
it("removes a node from a way", function () {
var node = iD.Node({id: "n1"}),
way = iD.Way({id: "w1", nodes: ["n1"]}),
graph = iD.actions.removeWayNode(way, node)(iD.Graph({n1: node, w1: way}));
expect(graph.entity(way.id).nodes).to.eql([]);
});
});