From ed62cb0e503f68d7139702d1b331e6d69c282100 Mon Sep 17 00:00:00 2001 From: juanf <juanf@bsse-bs-dock-dhcp-447.ethz.ch> Date: Fri, 24 Aug 2018 13:56:13 +0200 Subject: [PATCH] SSDM-6791 : Do not show storage positions in hierarchy graph and table --- .../eln-lims/html/js/config/Profile.js | 59 +++++++++++++++++++ .../HierarchyTable/HierarchyTableModel.js | 5 ++ .../html/js/views/legacy/SampleHierarchy.js | 5 ++ 3 files changed, 69 insertions(+) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/config/Profile.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/config/Profile.js index 2db4dc9a189..9c2cd5c5385 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/config/Profile.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/config/Profile.js @@ -278,6 +278,65 @@ $.extend(DefaultProfile.prototype, { "experimentTypeCodes" : [] } + this._deleteSampleConnectionsByTypeIfNotVisited = function(sample, visited) { + var permId = null; + + if(sample["@type"] === "as.dto.sample.Sample") { + permId = sample.getPermId().getPermId(); + } else if(sample["@type"] === "Sample") { + permId = sample.permId; + } + + if(visited[permId]) { + return; + } else { + visited[permId] = true; + } + + if(sample.parents) { + for(var i=0; i < sample.parents.length; i++) { + var sampleParent = sample.parents[i]; + var sampleTypeCode = null; + + if(sample["@type"] === "as.dto.sample.Sample") { + sampleTypeCode = sampleParent.getType().getCode(); + } else if(sample["@type"] === "Sample") { + sampleTypeCode = sampleParent.sampleTypeCode; + } + + if($.inArray(sampleTypeCode, this.hideTypes["sampleTypeCodes"]) !== -1) { + sample.parents.splice(i, 1); + i--; + } else { + this._deleteSampleConnectionsByTypeIfNotVisited(sampleParent, visited); + } + } + } + if(sample.children) { + for(var i=0; i < sample.children.length; i++) { + var sampleChild = sample.children[i]; + var sampleTypeCode = null; + + if(sample["@type"] === "as.dto.sample.Sample") { + sampleTypeCode = sampleChild.getType().getCode(); + } else if(sample["@type"] === "Sample") { + sampleTypeCode = sampleChild.sampleTypeCode; + } + + if($.inArray(sampleTypeCode, this.hideTypes["sampleTypeCodes"]) !== -1) { + sample.children.splice(i, 1); + i--; + } else { + this._deleteSampleConnectionsByTypeIfNotVisited(sampleChild, visited); + } + } + } + } + + this.deleteSampleConnectionsByType = function(sample) { + var visited = {}; + this._deleteSampleConnectionsByTypeIfNotVisited(sample, visited); + } this.propertyReplacingCode = "NAME"; diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/HierarchyTable/HierarchyTableModel.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/HierarchyTable/HierarchyTableModel.js index ead5b531db4..108447c03ce 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/HierarchyTable/HierarchyTableModel.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/HierarchyTable/HierarchyTableModel.js @@ -16,6 +16,11 @@ function HierarchyTableModel(entity) { this.entity = entity; + + if(this.entity["@type"] === "as.dto.sample.Sample") { // V3 Sample + profile.deleteSampleConnectionsByType(this.entity); + } + this.relationShipsMap = HierarchyUtil.createRelationShipsMap(entity); this.getData = function(dataList) { diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/legacy/SampleHierarchy.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/legacy/SampleHierarchy.js index 54b397207e9..ba08f6e4f70 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/legacy/SampleHierarchy.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/legacy/SampleHierarchy.js @@ -22,6 +22,11 @@ function SampleHierarchy(serverFacade, views, profile, sample) { this.sample = sample; this.hierarchyFilterController = null; + // + if(this.sample["@type"] === "Sample") { // V1 Sample + profile.deleteSampleConnectionsByType(this.sample); + } + // this.init = function() { this.repaint(); } -- GitLab