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