From b2ee989a6c929455f853d38aaa258ceddf9ac847 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Fri, 3 Mar 2017 15:28:36 +0000
Subject: [PATCH] SSDM-4830 : Efficient loading of sample parents/children on
 the links widget

SVN: 37858
---
 .../views/SampleForm/widgets/LinksController.js   | 15 ++++++++++++++-
 .../html/js/views/SampleForm/widgets/LinksView.js |  2 +-
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/LinksController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/LinksController.js
index c55d4e912e6..e18948ac673 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/LinksController.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/LinksController.js
@@ -131,8 +131,21 @@ function LinksController(title, sampleTypeHints, isDisabled, samplesToEdit, show
 	
 	this.addSamplesOnInit = function(samples) {
 		Util.blockUI();
+		var samplesByType = {};
 		if(samples && samples.length > 0) {
-			linksView.updateSample(samples, true, true);
+			for(var sIdx = 0; sIdx < samples.length; sIdx++) {
+				var sampleTypeCode = samples[sIdx].sampleTypeCode;
+				var samplesOfType = samplesByType[sampleTypeCode];
+				if(!samplesOfType) {
+					samplesOfType = [];
+					samplesByType[sampleTypeCode] = samplesOfType;
+				}
+				samplesOfType.push(samples[sIdx]);
+			}
+		}
+		
+		for(var type in samplesByType) {
+			linksView.updateSample(samplesByType[type], true, true);
 		}
 		Util.unblockUI();
 	}
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/LinksView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/LinksView.js
index 4c66bbc99ee..8ab269380cf 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/LinksView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/LinksView.js
@@ -37,7 +37,7 @@ function LinksView(linksController, linksModel) {
 		}
 		 //This should happen only during the initalization
 		if(samples) {
-			samplesOnGrid = samples;
+			samplesOnGrid = samplesOnGrid.concat(samples);
 		}
 		
 		linksModel.samplesByType[sampleTypeCode] = samplesOnGrid;
-- 
GitLab