diff options
| author | Alon Levy <alon@pobox.com> | 2015-01-06 15:35:19 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-01-06 15:35:19 +0200 |
| commit | c9ca9ab48733366539e1a5789ab05eb4fb0a8e0f (patch) | |
| tree | ba3b2cd0e0d734a06f627bc64a54404a3bc3c9b4 /src/client/model | |
| parent | 7fd7384da2703a9d48caa6a2c82ceca9aa809262 (diff) | |
client/model/graph: don't send existing nodes in commit diffs
Diffstat (limited to 'src/client/model')
| -rw-r--r-- | src/client/model/graph.js | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/client/model/graph.js b/src/client/model/graph.js index 24255070..83f28435 100644 --- a/src/client/model/graph.js +++ b/src/client/model/graph.js @@ -77,15 +77,20 @@ function Graph(spec) { */ var commit_and_tx_diff__topo = function (topo_diff) { $.merge(topo_diff.link_set_rm, nodes_to_touched_links(topo_diff.node_set_rm)); - topo_diff.node_set_add = topo_diff.node_set_add.map(function(n) { - util.assert(undefined !== n.id, "undefined id in node in topo diff"); - util.assert(undefined === server_pending_objects[n.id], "cache full at id"); - - server_pending_objects[n.id] = { - name: n.name, - }; // FIXME: url, startdate, etc - all properties. i.e. a Node to spec function - return model_util.adapt_format_write_node(n); - }); + topo_diff.node_set_add = topo_diff.node_set_add + .filter(function(n) { + util.assert(undefined !== n.id, "undefined id in node in topo diff"); + util.assert(undefined === server_pending_objects[n.id], "cache full at id"); + return find_node__by_id(n.id) === undefined; + }) + .map(function(n) { + // FIXME: url, startdate, etc - all properties. i.e. a Node to + // spec function + server_pending_objects[n.id] = { + name: n.name, + }; + return model_util.adapt_format_write_node(n); + }); topo_diff.link_set_add = topo_diff.link_set_add.map(function(l) { util.assert(l.id !== undefined, "undefined id in link in topo diff"); |
