Excluding verticies where appropriate on save sidebar

This commit is contained in:
Aaron Lidman
2013-10-16 15:23:20 -04:00
parent b74ba194f2
commit 1ae060e35f
6 changed files with 52 additions and 1 deletions
+1
View File
@@ -37,6 +37,7 @@
<script src='js/id/util.js'></script>
<script src='js/id/util/session_mutex.js'></script>
<script src='js/id/util/relevant_changes.js'></script>
<script src='js/id/services/taginfo.js'></script>
<script src='js/id/services/wikipedia.js'></script>
+1 -1
View File
@@ -131,7 +131,7 @@ iD.ui.Commit = function(context) {
var li = section.append('ul')
.attr('class', 'changeset-list')
.selectAll('li')
.data(function(d) { return changes[d]; })
.data(function(d) { return iD.util.relevantChanges(context.graph(), changes[d]); })
.enter()
.append('li');
+18
View File
@@ -0,0 +1,18 @@
// filters out verticies where the parent entity is already present
// for simpler changeset listing
iD.util.relevantChanges = function(graph, entities) {
var relevant = {};
for (var i = entities.length - 1; i >= 0; i--) {
var entity = entities[i];
if (entity.geometry(graph) === 'vertex') {
var parents = graph.parentWays(entity);
for (var j = parents.length - 1; j >= 0; j--) {
var parent = parents[j];
relevant[parent.id] = parent;
}
} else {
relevant[entity.id] = entity;
}
}
return d3.values(relevant);
};
+2
View File
@@ -192,6 +192,7 @@
<script src='../js/id/presets/field.js'></script>
<script src='../js/id/util/session_mutex.js'></script>
<script src='../js/id/util/relevant_changes.js'></script>
<script src='../js/id/validate.js'></script>
@@ -273,6 +274,7 @@
<script src="spec/util.js"></script>
<script src='spec/util/session_mutex.js'></script>
<script src='spec/util/relevant_changes.js'></script>
<script src="spec/behavior/hash.js"></script>
<script src="spec/behavior/hover.js"></script>
+1
View File
@@ -91,6 +91,7 @@
<script src="spec/util.js"></script>
<script src='spec/util/session_mutex.js'></script>
<script src='spec/util/relevant_changes.js'></script>
<script src="spec/behavior/hash.js"></script>
<script src="spec/behavior/hover.js"></script>
+29
View File
@@ -0,0 +1,29 @@
describe("iD.util.relevantChanges", function() {
var graph = iD.Graph({
'a': iD.Node({id: 'a', loc: [0, 0]}),
'b': iD.Node({id: 'b', loc: [2, 0]}),
'c': iD.Node({id: 'c', loc: [2, 2]}),
'd': iD.Node({id: 'd', loc: [0, 2]}),
'e': iD.Node({id: 'e', loc: [0, 2]}),
'-': iD.Way({id: '-', nodes: ['a', 'b', 'c', 'd', 'e', 'a']})
});
it("returns a way that changed", function() {
var entities = [graph.entity('-')],
a = iD.util.relevantChanges(graph, entities);
expect(a).to.eql(entities);
});
it("just returns the way that changed, leaving out the verticies", function() {
var entities = [
graph.entity('a'),
graph.entity('b'),
graph.entity('c'),
graph.entity('d'),
graph.entity('e'),
graph.entity('-')],
a = iD.util.relevantChanges(graph, entities),
way = [graph.entity('-')];
expect(a).to.eql(way);
});
});