From 121745d38dbd1069270bd7f9211a7d8e251201c4 Mon Sep 17 00:00:00 2001
From: felmer <franz-josef.elmer@id.ethz.ch>
Date: Thu, 23 May 2019 11:01:51 +0200
Subject: [PATCH] SSDM-8307: Bug fixed

---
 .../1/as/webapps/eln-lims/html/js/config/Profile.js  | 10 +++++++---
 .../html/js/views/SampleTable/SampleTableView.js     | 12 ++++++++----
 2 files changed, 15 insertions(+), 7 deletions(-)

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 6b335612f2c..c916ea2ac26 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
@@ -281,14 +281,18 @@ $.extend(DefaultProfile.prototype, {
 		
 		this.getStorageConfigCollectionForConfigSample = function(sample) {
 			var prefix = this.getSampleConfigSpacePrefix(sample);
-			return IdentifierUtil.getExperimentIdentifier(prefix + "ELN_SETTINGS", prefix + "STORAGES", prefix + "STORAGES_COLLECTION");
+			return IdentifierUtil.getExperimentIdentifier(prefix + "ELN_SETTINGS", "STORAGES", "STORAGES_COLLECTION");
 		}
 		
 		this.getStorageSpaceForSample = function(sample) {
+			return this.getStorageSpaceForSpace(sample.spaceCode);
+		}
+		
+		this.getStorageSpaceForSpace = function(spaceCode) {
 			var storageSpaceCode = null;
-			var prefixIndexOf = sample.spaceCode.indexOf("_"); // This is a euristic that only works if the prefixes can't contain "_"
+			var prefixIndexOf = spaceCode.indexOf("_"); // This is a euristic that only works if the prefixes can't contain "_"
 			if(prefixIndexOf !== -1) {
-				var prefix = sample.spaceCode.substring(0, prefixIndexOf);
+				var prefix = spaceCode.substring(0, prefixIndexOf);
 				for(var ssIdx = 0; ssIdx < this.storageSpaces.length; ssIdx++) {
 					if(this.storageSpaces[ssIdx].startsWith(prefix)) {
 						storageSpaceCode = this.storageSpaces[ssIdx];
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js
index 545f609ec8a..1980821bbdd 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js
@@ -215,11 +215,13 @@ function SampleTableView(sampleTableController, sampleTableModel) {
 	this.registerSamples = function(experimentIdentifier) {
 		var allowedSampleTypes = null;
 		var forcedSpace = null;
+		var spaceCodeFromIdentifier = null;
 		if(this._sampleTableModel.sampleTypeCodeToUse) {
 			allowedSampleTypes = [this._sampleTableModel.sampleTypeCodeToUse, "STORAGE_POSITION"];
 		}
 		if(experimentIdentifier) {
-			forcedSpace = IdentifierUtil.getForcedSpaceIdentifier(IdentifierUtil.getSpaceCodeFromIdentifier(experimentIdentifier));
+			spaceCodeFromIdentifier = IdentifierUtil.getSpaceCodeFromIdentifier(experimentIdentifier);
+			forcedSpace = IdentifierUtil.getForcedSpaceIdentifier(spaceCodeFromIdentifier);
 		}
 		
 		var typeAndFileController = new TypeAndFileController('Register ' + ELNDictionary.Samples + '', "REGISTRATION", function(type, file) {
@@ -245,7 +247,7 @@ function SampleTableView(sampleTableController, sampleTableModel) {
 					var experimentIdentifierOrDelete = experimentIdentifier;
 					if(experimentIdentifierOrDelete && typeAndFileController.getSampleTypeCode() === "STORAGE_POSITION") {
 						experimentIdentifierOrDelete = "__DELETE__";
-						forcedSpace = IdentifierUtil.getForcedSpaceIdentifier("STORAGE");
+						forcedSpace = profile.getStorageSpaceForSpace(spaceCodeFromIdentifier);
 					}
 					if(infoData.result.identifiersPressent) { //If identifiers are present they should match the space of the experiment
 						mainController.serverFacade.registerSamplesWithSilentOverrides(typeAndFileController.getSampleTypeCode(), forcedSpace, experimentIdentifierOrDelete, "sample-file-upload", null, finalCallback);
@@ -262,11 +264,13 @@ function SampleTableView(sampleTableController, sampleTableModel) {
 	this.updateSamples = function(experimentIdentifier) {
 		var allowedSampleTypes = null;
 		var forcedSpace = null;
+		var spaceCodeFromIdentifier = null;
 		if(this._sampleTableModel.sampleTypeCodeToUse) {
 			allowedSampleTypes = [this._sampleTableModel.sampleTypeCodeToUse, "STORAGE_POSITION"];
 		}
 		if(experimentIdentifier) {
-			forcedSpace = IdentifierUtil.getForcedSpaceIdentifier(IdentifierUtil.getSpaceCodeFromIdentifier(experimentIdentifier));
+			spaceCodeFromIdentifier = IdentifierUtil.getSpaceCodeFromIdentifier(experimentIdentifier);
+			forcedSpace = IdentifierUtil.getForcedSpaceIdentifier(spaceCodeFromIdentifier);
 		}
 		var typeAndFileController = new TypeAndFileController('Update ' + ELNDictionary.Samples + '', "UPDATE", function(type, file) {
 			Util.blockUI();
@@ -286,7 +290,7 @@ function SampleTableView(sampleTableController, sampleTableModel) {
 			var experimentIdentifierOrDelete = experimentIdentifier;
 			if(experimentIdentifierOrDelete && typeAndFileController.getSampleTypeCode() === "STORAGE_POSITION") {
 				experimentIdentifierOrDelete = "__DELETE__";
-				forcedSpace = IdentifierUtil.getForcedSpaceIdentifier("STORAGE");
+				forcedSpace = profile.getStorageSpaceForSpace(spaceCodeFromIdentifier);
 			}
 			
 			mainController.serverFacade.fileUpload(typeAndFileController.getFile(), function(result) {
-- 
GitLab