From 2d020af7ab56738a0bb7dbf46bfbde21ab81f156 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Mon, 28 Sep 2015 14:01:24 +0000
Subject: [PATCH] SSDM-2450 : Add move option, to move samples between
 experiments/projects (ongoing work)

SVN: 34724
---
 .../1/as/webapps/eln-lims/html/js/server/ServerFacade.js     | 5 +++--
 .../js/views/SampleTable/widgets/MoveSampleController.js     | 3 ++-
 .../eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py | 4 ++++
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
index dbacbccd7ba..e524ac7ce30 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
@@ -413,12 +413,13 @@ function ServerFacade(openbisServer) {
 	//
 	// Sample Others functions
 	//
-	this.moveSample = function(sampleIdentifier, experimentIdentifier, callbackFunction) {
+	this.moveSample = function(sampleIdentifier, experimentIdentifier, experimentType, callbackFunction) {
 		this.createReportFromAggregationService(profile.getDefaultDataStoreCode(),
 				{
 					"method" : "moveSample",
 					"sampleIdentifier" : sampleIdentifier,
-					"experimentIdentifier" : experimentIdentifier
+					"experimentIdentifier" : experimentIdentifier,
+					"experimentType" : experimentType
 				},
 				function(data){
 					if(data.result.rows[0][0].value == "OK") {
diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/MoveSampleController.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/MoveSampleController.js
index bf5e1b19d02..6fd34276528 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/MoveSampleController.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/MoveSampleController.js
@@ -35,7 +35,8 @@ function MoveSampleController(samplePermId) {
 		
 		mainController.serverFacade.moveSample(
 				this._moveSampleModel.sample.identifier,
-				this._moveSampleModel.experimentIdentifier, function(isOK) {
+				this._moveSampleModel.experimentIdentifier,
+				this._moveSampleModel.experimentType, function(isOK) {
 					if(isOK) {
 						Util.showSuccess("Sample " + _this._moveSampleModel.sample.identifier + " moved to " + _this._moveSampleModel.experimentIdentifier, function() { Util.unblockUI(); });
 					} else {
diff --git a/plasmid/source/core-plugins/eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py b/plasmid/source/core-plugins/eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py
index f909c716b57..567baad89ce 100644
--- a/plasmid/source/core-plugins/eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py
+++ b/plasmid/source/core-plugins/eln-lims/1/dss/reporting-plugins/newbrowserapi/script.py
@@ -459,10 +459,14 @@ def insertUpdateSample(tr, parameters, tableBuilder):
 def moveSample(tr, parameters, tableBuilder):
 	sampleIdentifier = parameters.get("sampleIdentifier"); #String
 	experimentIdentifier = parameters.get("experimentIdentifier"); #String
+	experimentType = parameters.get("experimentType"); #String
 	
 	sample = getSampleByIdentifierForUpdate(tr, sampleIdentifier); #Retrieve Sample
 	experiment = tr.getExperiment(experimentIdentifier); #Retrieve Experiment
 	
+	if experiment is None:
+		experiment = tr.createNewExperiment(experimentIdentifier, experimentType);
+	
 	sample.setExperiment(experiment);
 	return True
 
-- 
GitLab