diff options
| author | Alon Levy <alon@pobox.com> | 2015-01-13 13:01:06 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-01-13 13:01:06 +0200 |
| commit | ede80059779e6c8c71d47c7efe7d1274419f5964 (patch) | |
| tree | 36035f715b49fa43f7abfe7341a9a97978a5e01e /src/client/textanalysis.js | |
| parent | 458364a2a4bff2b2c213ff164ee6383302039bb6 (diff) | |
textanalysis: only send new nodes. Fixes #260
Diffstat (limited to 'src/client/textanalysis.js')
| -rw-r--r-- | src/client/textanalysis.js | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/client/textanalysis.js b/src/client/textanalysis.js index 0c557412..1bb4e988 100644 --- a/src/client/textanalysis.js +++ b/src/client/textanalysis.js @@ -398,25 +398,32 @@ var textAnalyser = function (spec) { ret.applyToGraph = function(spec) { var edit_graph = spec.edit_graph, backend_commit = spec.backend_commit, - main_graph = edit_graph.base; + main_graph = edit_graph.base, + existing_nodes = []; util.assert(edit_graph !== undefined && main_graph !== undefined && backend_commit !== undefined, "missing inputs"); window.ret = ret; - ret.node_set_add = nodes.map(function (node) { - var main_node = main_graph.find_node__by_name(node.name); - if (main_node) { - console.log('!!! returning a node from the parent graph'); - return main_node; - } - return model_core.create_node__set_random_id(node); - }); - // fill in hash to be used for link creation + ret.node_set_add = nodes + .filter(function (node_spec) { + var main_node = main_graph.find_node__by_name(node_spec.name); + if (main_node) { + existing_nodes.push(main_node); + } + return main_node === null; + }) + .map(function (node_spec) { + return model_core.create_node__set_random_id(node_spec); + }); + // fill in hash to be used for link creation, new and existing nodes ret.node_set_add.forEach(function (node) { node_by_name[node.name] = node; }); + existing_nodes.forEach(function (node) { + node_by_name[node.name] = node; + }); ret.link_set_add = links .filter(function (link) { |
