From c3dc476932b9a23c7a6444f8f749a0114fe23008 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Mon, 13 Oct 2014 13:31:19 +0000
Subject: [PATCH] SSDM-1038 ELN UI - PAPER - Data Set Form Refactoring

SVN: 32594
---
 .../js/views/DataSetForm/DataSetFormController.js    | 10 ++++++++--
 .../1/dss/reporting-plugins/newbrowserapi/script.py  | 12 ++++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/DataSetForm/DataSetFormController.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/DataSetForm/DataSetFormController.js
index eaa5376c385..9cfdad8612c 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/DataSetForm/DataSetFormController.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/DataSetForm/DataSetFormController.js
@@ -113,6 +113,7 @@ function DataSetFormController(mainController, mode, sample, dataset) {
 			dataSetTypeCode = $('#DATASET_TYPE').val();
 		} else if(this._dataSetFormModel.mode === FormMode.EDIT) {
 			method = "updateDataSet";
+			dataSetCode = this._dataSetFormModel.dataSet.code;
 			dataSetTypeCode = this._dataSetFormModel.dataSet.dataSetTypeCode;
 		}
 		
@@ -120,7 +121,8 @@ function DataSetFormController(mainController, mode, sample, dataset) {
 				//API Method
 				"method" : method,
 				//Identification Info
-				"sampleIdentifier" : sampleIdentifier,
+				"dataSetCode" : dataSetCode, //Used for updates
+				"sampleIdentifier" : sampleIdentifier, //Use for creation
 				"dataSetType" : dataSetTypeCode,
 				"filenames" : _this._dataSetFormModel.files,
 				"folderName" : folderName,
@@ -154,7 +156,11 @@ function DataSetFormController(mainController, mode, sample, dataset) {
 					var callbackOk = function() {
 						_this.isFormDirty = false;
 						Util.unblockUI();
-						mainController.changeView('showViewSamplePageFromPermId', _this._dataSetFormModel.sample.permId);
+						if(_this._dataSetFormModel.mode === FormMode.CREATE) {
+							mainController.changeView('showViewSamplePageFromPermId', _this._dataSetFormModel.sample.permId);
+						} else if(_this._dataSetFormModel.mode === FormMode.EDIT) {
+							mainController.changeView('showViewDataSetPageFromPermId', _this._dataSetFormModel.dataSet.code);
+						}
 					}
 					Util.showSuccess("DataSet Created.", callbackOk);
 				} else { //This should never happen
diff --git a/plasmid/source/core-plugins/newbrowser/1/dss/reporting-plugins/newbrowserapi/script.py b/plasmid/source/core-plugins/newbrowser/1/dss/reporting-plugins/newbrowserapi/script.py
index 3b21a487462..a697b8da729 100644
--- a/plasmid/source/core-plugins/newbrowser/1/dss/reporting-plugins/newbrowserapi/script.py
+++ b/plasmid/source/core-plugins/newbrowser/1/dss/reporting-plugins/newbrowserapi/script.py
@@ -89,6 +89,18 @@ def insertUpdateProject(tr, parameters, tableBuilder):
 	return True;
 	
 def updateDataSet(tr, parameters, tableBuilder):
+	dataSetCode = parameters.get("dataSetCode"); #String
+	metadata = parameters.get("metadata"); #java.util.LinkedHashMap<String, String> where the key is the name
+	dataSet = tr.getDataSetForUpdate(dataSetCode);
+	
+	#Assign Data Set properties
+	for key in metadata.keySet():
+		propertyValue = unicode(metadata[key]);
+		if propertyValue == "":
+			propertyValue = None;
+		
+		dataSet.setPropertyValue(key,propertyValue);
+	
 	#Return from the call
 	return True;
 
-- 
GitLab