From 1e9fe78a360234e5a33074605c2b966a7a49676e Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Mon, 5 Oct 2015 11:30:12 +0000 Subject: [PATCH] SSDM-2435 : Experiments Support SVN: 34779 --- .../html/js/DataSetFormController.js | 31 ++++++++----------- .../html/js/DataSetFormModel.js | 4 +-- .../html/js/DataSetFormView.js | 5 +-- .../dataset-uploader/plugin.properties | 3 +- .../dataset-uploader-api.py | 11 +++++-- 5 files changed, 26 insertions(+), 28 deletions(-) diff --git a/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormController.js b/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormController.js index 04d58540d74..a2833be7517 100644 --- a/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormController.js +++ b/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormController.js @@ -16,14 +16,14 @@ function DataSetFormController() { this._container = null; - this._sample = null; + this._sampleOrExperiment = null; this._dataSetFormModel = null; this._dataSetFormView = null; - this.init = function($container, sample) { + this.init = function($container, sampleOrExperiment) { this._container = $container; - this._sample = sample; - this._dataSetFormModel = new DataSetFormModel(sample); + this._sampleOrExperiment = sampleOrExperiment; + this._dataSetFormModel = new DataSetFormModel(sampleOrExperiment); this._dataSetFormView = new DataSetFormView(this, this._dataSetFormModel); var _this = this; @@ -38,17 +38,6 @@ function DataSetFormController() { }); } - this._addCommentsWidget = function($container) { - var commentsController = new CommentsController(this._dataSetFormModel.dataSet, this._dataSetFormModel.mode, this._dataSetFormModel); - if(this._dataSetFormModel.mode !== FormMode.VIEW || - this._dataSetFormModel.mode === FormMode.VIEW && !commentsController.isEmpty()) { - commentsController.init($container); - return true; - } else { - return false; - } - } - this._getDataSetType = function(typeCode) { for(var i = 0; i < this._dataSetFormModel.dataSetTypes.length; i++) { if(this._dataSetFormModel.dataSetTypes[i].code === typeCode) { @@ -81,15 +70,14 @@ function DataSetFormController() { } var method = "insertDataSet"; - var sampleIdentifier = this._dataSetFormModel.sample.identifier; var dataSetTypeCode = $('#DATASET_TYPE').val(); + var parameters = { //API Method "sessionToken" : openBIS.getSession(), "method" : method, //Identification Info - "sampleIdentifier" : sampleIdentifier, //Use for creation "dataSetType" : dataSetTypeCode, "filenames" : _this._dataSetFormModel.files, "folderName" : folderName, @@ -100,6 +88,13 @@ function DataSetFormController() { "sessionID" : openBIS.getSession(), "openBISURL" : openBIS._internal.openbisUrl }; + + var sampleOrExperimentIdentifier = this._dataSetFormModel.sampleOrExperiment.identifier; + if(sampleOrExperimentIdentifier.split("/").length === 3) { + parameters["sampleIdentifier"] = sampleOrExperimentIdentifier; + } else if(sampleOrExperimentIdentifier.split("/").length === 4) { + parameters["experimentIdentifier"] = sampleOrExperimentIdentifier; + } if(this._dataSetFormModel.dataStores.length > 0) { openBIS.createReportFromAggregationService(this._dataSetFormModel.dataStores[0].code, "dataset-uploader-api", parameters, function(response) { @@ -122,7 +117,7 @@ function DataSetFormController() { } else if (response.result.columns[0].title === "STATUS" && response.result.rows[0][0].value === "OK") { //Success Case Util.showSuccess("DataSet Created.", function() { Util.unblockUI(); - _this.init(_this._container, _this._sample); + _this.init(_this._container, _this._sampleOrExperiment); }); } else { //This should never happen diff --git a/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormModel.js b/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormModel.js index fa5546122ed..3a63233a3df 100644 --- a/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormModel.js +++ b/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormModel.js @@ -14,10 +14,10 @@ * limitations under the License. */ -function DataSetFormModel(sample) { +function DataSetFormModel(sampleOrExperiment) { this.isFormDirty = false; - this.sample = sample; + this.sampleOrExperiment = sampleOrExperiment; this.dataSet = { properties : {} }; this.dataStores = []; diff --git a/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormView.js b/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormView.js index 6dc8336bb85..d87061a8b0a 100644 --- a/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormView.js +++ b/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/html/js/DataSetFormView.js @@ -67,10 +67,7 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) { ); $dataSetTypeFieldSet.append($dataSetTypeDropDown); - var owner = this._dataSetFormModel.sample.identifier; - if(this._dataSetFormModel.sample.experimentIdentifierOrNull) { - owner = this._dataSetFormModel.sample.experimentIdentifierOrNull + "/" + this._dataSetFormModel.sample.code; - } + var owner = this._dataSetFormModel.sampleOrExperiment.identifier; $dataSetTypeFieldSet.append(FormUtil.getFieldForTextWithLabel(owner, "Sample")); // diff --git a/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/plugin.properties b/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/plugin.properties index 7879502e855..4d322c83fcd 100644 --- a/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/plugin.properties +++ b/openbis/source/core-plugins/dataset-uploader/1/as/webapps/dataset-uploader/plugin.properties @@ -1,4 +1,5 @@ webapp-folder = html -openbisui-contexts = sample-details-view +openbisui-contexts = sample-details-view, experiment-details-view sample-entity-types = .* +experiment-entity-types = .* label = DataSet Uploader \ No newline at end of file diff --git a/openbis/source/core-plugins/dataset-uploader/1/dss/reporting-plugins/dataset-uploader-api/dataset-uploader-api.py b/openbis/source/core-plugins/dataset-uploader/1/dss/reporting-plugins/dataset-uploader-api/dataset-uploader-api.py index 33efe8c629c..03c1d474fcd 100644 --- a/openbis/source/core-plugins/dataset-uploader/1/dss/reporting-plugins/dataset-uploader-api/dataset-uploader-api.py +++ b/openbis/source/core-plugins/dataset-uploader/1/dss/reporting-plugins/dataset-uploader-api/dataset-uploader-api.py @@ -92,6 +92,7 @@ def getThreadProperties(transaction): def insertDataSet(tr, parameters, tableBuilder): #Mandatory parameters sampleIdentifier = parameters.get("sampleIdentifier"); #String + experimentIdentifier = parameters.get("experimentIdentifier"); #String dataSetType = parameters.get("dataSetType"); #String folderName = parameters.get("folderName"); #String fileNames = parameters.get("filenames"); #List<String> @@ -99,10 +100,14 @@ def insertDataSet(tr, parameters, tableBuilder): metadata = parameters.get("metadata"); #java.util.LinkedHashMap<String, String> where the key is the name #Create Dataset - dataSetSample = getSampleByIdentifierForUpdate(tr, sampleIdentifier); dataSet = tr.createNewDataSet(dataSetType); - dataSet.setSample(dataSetSample); - + if sampleIdentifier is not None: + dataSetSample = getSampleByIdentifierForUpdate(tr, sampleIdentifier); + dataSet.setSample(dataSetSample); + elif experimentIdentifier is not None: + dataSetExperiment = tr.getExperimentForUpdate(experimentIdentifier); + dataSet.setExperiment(dataSetExperiment); + #Assign Data Set properties for key in metadata.keySet(): propertyValue = unicode(metadata[key]); -- GitLab