mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-15 05:30:35 +02:00
Add iD.actions.AddRelationMember
This commit is contained in:
@@ -71,6 +71,7 @@
|
||||
|
||||
<script src='js/id/actions.js'></script>
|
||||
<script src='js/id/actions/add_node.js'></script>
|
||||
<script src='js/id/actions/add_relation_member.js'></script>
|
||||
<script src='js/id/actions/add_way.js'></script>
|
||||
<script src='js/id/actions/add_way_node.js'></script>
|
||||
<script src='js/id/actions/change_entity_tags.js'></script>
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
iD.actions.AddRelationMember = function(relationId, member, index) {
|
||||
return function(graph) {
|
||||
var relation = graph.entity(relationId),
|
||||
members = relation.members.slice();
|
||||
|
||||
members.splice((index === undefined) ? members.length : index, 0, member);
|
||||
return graph.replace(relation.update({members: members}));
|
||||
};
|
||||
};
|
||||
@@ -66,6 +66,7 @@
|
||||
|
||||
<script src='../js/id/actions.js'></script>
|
||||
<script src='../js/id/actions/add_node.js'></script>
|
||||
<script src="../js/id/actions/add_relation_member.js"></script>
|
||||
<script src='../js/id/actions/add_way.js'></script>
|
||||
<script src='../js/id/actions/add_way_node.js'></script>
|
||||
<script src='../js/id/actions/change_entity_tags.js'></script>
|
||||
@@ -124,6 +125,7 @@
|
||||
|
||||
<!-- include spec files here... -->
|
||||
<script src="spec/actions/add_node.js"></script>
|
||||
<script src="spec/actions/add_relation_member.js"></script>
|
||||
<script src="spec/actions/add_way.js"></script>
|
||||
<script src="spec/actions/add_way_node.js"></script>
|
||||
<script src="spec/actions/change_entity_tags.js"></script>
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
<!-- include spec files here... -->
|
||||
<script src="spec/actions/add_node.js"></script>
|
||||
<script src="spec/actions/add_relation_member.js"></script>
|
||||
<script src="spec/actions/add_way.js"></script>
|
||||
<script src="spec/actions/add_way_node.js"></script>
|
||||
<script src="spec/actions/change_entity_tags.js"></script>
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
describe("iD.actions.AddRelationMember", function () {
|
||||
it("adds a member at the end of the relation", function () {
|
||||
var relation = iD.Relation(),
|
||||
graph = iD.Graph([relation]);
|
||||
|
||||
graph = iD.actions.AddRelationMember(relation.id, {id: '1'})(graph);
|
||||
|
||||
expect(graph.entity(relation.id).members).to.eql([{id: '1'}]);
|
||||
});
|
||||
|
||||
it("adds a member at index 0", function () {
|
||||
var relation = iD.Relation({members: [{id: '1'}]}),
|
||||
graph = iD.Graph([relation]);
|
||||
|
||||
graph = iD.actions.AddRelationMember(relation.id, {id: '2'}, 0)(graph);
|
||||
|
||||
expect(graph.entity(relation.id).members).to.eql([{id: '2'}, {id: '1'}]);
|
||||
});
|
||||
|
||||
it("adds a member at a positive index", function () {
|
||||
var relation = iD.Relation({members: [{id: '1'}, {id: '3'}]}),
|
||||
graph = iD.Graph([relation]);
|
||||
|
||||
graph = iD.actions.AddRelationMember(relation.id, {id: '2'}, 1)(graph);
|
||||
|
||||
expect(graph.entity(relation.id).members).to.eql([{id: '1'}, {id: '2'}, {id: '3'}]);
|
||||
});
|
||||
|
||||
it("adds a member at a negative index", function () {
|
||||
var relation = iD.Relation({members: [{id: '1'}, {id: '3'}]}),
|
||||
graph = iD.Graph([relation]);
|
||||
|
||||
graph = iD.actions.AddRelationMember(relation.id, {id: '2'}, -1)(graph);
|
||||
|
||||
expect(graph.entity(relation.id).members).to.eql([{id: '1'}, {id: '2'}, {id: '3'}]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user