From 1a8936cb5eec66a7a6981e67c4ff66a947550f78 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Thu, 2 Apr 2015 09:32:44 +0000 Subject: [PATCH] SSDM-1683: bug in HierarchyUtils.createRelationShipsMap() fixed for the case of no ancestors and descendants SVN: 33779 --- .../newbrowser/html/js/util/HierarchyUtil.js | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/util/HierarchyUtil.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/util/HierarchyUtil.js index e84edc6c398..3649b875b2d 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/util/HierarchyUtil.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/util/HierarchyUtil.js @@ -165,29 +165,34 @@ var HierarchyUtil = new function() { }); } - + /* + * Creates a map (sample identifiers as keys) for all ancestors and descendants of the specified sample. + * The values of the map are the children and parents of the sample specified by the key.. + */ this.createRelationShipsMap = function(sample) { var relationShipsMap = {}; - traverseParents(sample, relationShipsMap); - traverseChildren(sample, relationShipsMap ); + createRelationShipEntry(sample, relationShipsMap); + traverseAncestors(sample, relationShipsMap); + traverseDescendants(sample, relationShipsMap); return relationShipsMap; } - var traverseParents = function(sample, relationShipsMap) { + + var traverseAncestors = function(sample, relationShipsMap) { if (sample.parents) { for (var i = 0; i < sample.parents.length; i++) { var parent = sample.parents[i]; addRelationShip(parent, sample, relationShipsMap); - traverseParents(parent, relationShipsMap); + traverseAncestors(parent, relationShipsMap); } } } - var traverseChildren = function(sample, relationShipsMap) { + var traverseDescendants = function(sample, relationShipsMap) { if (sample.children) { for (var i = 0; i < sample.children.length; i++) { var child = sample.children[i]; addRelationShip(sample, child, relationShipsMap); - traverseChildren(child, relationShipsMap); + traverseDescendants(child, relationShipsMap); } } } @@ -200,10 +205,15 @@ var HierarchyUtil = new function() { var getRelationShips = function(sample, relationShipsMap) { var relationShips = relationShipsMap[sample.identifier]; if (typeof relationShips === 'undefined') { - relationShips = {parents: [], children: []}; - relationShipsMap[sample.identifier] = relationShips; + relationShips = createRelationShipEntry(sample, relationShipsMap); } return relationShips; } + var createRelationShipEntry = function(sample, relationShipsMap) { + var relationShips = {parents: [], children: []}; + relationShipsMap[sample.identifier] = relationShips; + return relationShips; + } + } -- GitLab