mirror of
https://github.com/FoggedLens/iD.git
synced 2026-03-30 08:50:32 +02:00
Add iD.actions.DeleteMember
This commit is contained in:
5
js/id/actions/delete_member.js
Normal file
5
js/id/actions/delete_member.js
Normal file
@@ -0,0 +1,5 @@
|
||||
iD.actions.DeleteMember = function(relationId, memberIndex) {
|
||||
return function(graph) {
|
||||
return graph.replace(graph.entity(relationId).removeMember(memberIndex));
|
||||
};
|
||||
};
|
||||
@@ -73,6 +73,12 @@ _.extend(iD.Relation.prototype, {
|
||||
return this.update({members: members});
|
||||
},
|
||||
|
||||
removeMember: function(index) {
|
||||
var members = this.members.slice();
|
||||
members.splice(index, 1);
|
||||
return this.update({members: members});
|
||||
},
|
||||
|
||||
removeMembersWithID: function(id) {
|
||||
var members = _.reject(this.members, function(m) { return m.id === id; });
|
||||
return this.update({members: members});
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
<script src='../js/id/actions/add_vertex.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>
|
||||
<script src='../js/id/actions/delete_multiple.js'></script>
|
||||
<script src='../js/id/actions/delete_node.js'></script>
|
||||
<script src="../js/id/actions/delete_relation.js"></script>
|
||||
@@ -188,6 +189,7 @@
|
||||
<script src='spec/actions/circularize.js'></script>
|
||||
<script src='spec/actions/orthogonalize.js'></script>
|
||||
<script src='spec/actions/connect.js'></script>
|
||||
<script src='spec/actions/delete_member.js'></script>
|
||||
<script src="spec/actions/delete_multiple.js"></script>
|
||||
<script src="spec/actions/delete_node.js"></script>
|
||||
<script src="spec/actions/delete_relation.js"></script>
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
<script src="spec/actions/change_tags.js"></script>
|
||||
<script src='spec/actions/circularize.js'></script>
|
||||
<script src='spec/actions/connect.js'></script>
|
||||
<script src='spec/actions/delete_member.js'></script>
|
||||
<script src="spec/actions/delete_multiple.js"></script>
|
||||
<script src="spec/actions/delete_node.js"></script>
|
||||
<script src="spec/actions/delete_relation.js"></script>
|
||||
|
||||
9
test/spec/actions/delete_member.js
Normal file
9
test/spec/actions/delete_member.js
Normal file
@@ -0,0 +1,9 @@
|
||||
describe("iD.actions.DeleteMember", function () {
|
||||
it("removes the member at the specified index", function () {
|
||||
var node = iD.Node(),
|
||||
relation = iD.Relation({members: [node.id]}),
|
||||
action = iD.actions.DeleteMember(relation.id, 0),
|
||||
graph = action(iD.Graph([node, relation]));
|
||||
expect(graph.entity(relation.id).members).to.eql([]);
|
||||
});
|
||||
});
|
||||
@@ -128,6 +128,13 @@ describe('iD.Relation', function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe("#removeMember", function () {
|
||||
it("removes the member at the specified index", function () {
|
||||
var r = iD.Relation({members: [{id: 'a'}, {id: 'b'}, {id: 'c'}]});
|
||||
expect(r.removeMember(1).members).to.eql([{id: 'a'}, {id: 'c'}]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("#removeMembersWithID", function () {
|
||||
it("removes members with the given ID", function () {
|
||||
var r = iD.Relation({members: [{id: 'a'}, {id: 'b'}, {id: 'a'}]});
|
||||
|
||||
Reference in New Issue
Block a user