From c27390369d2d1eb5685f68e0466d0380de57fdcf Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Wed, 20 Sep 2017 12:02:13 +0000
Subject: [PATCH] SSDM-4223 : Jupyter integration - ongoing work

SVN: 38737
---
 .../widgets/AdvancedEntitySearchDropdown.js   |  8 +++++++
 .../widgets/JupyterNotebookView.js            | 21 +++++++------------
 2 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/AdvancedEntitySearchDropdown.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/AdvancedEntitySearchDropdown.js
index 95df16dea5b..745f296a43c 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/AdvancedEntitySearchDropdown.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/AdvancedEntitySearchDropdown.js
@@ -15,11 +15,13 @@
  */
 
 function AdvancedEntitySearchDropdown(	isMultiple,
+										isRequired,
 										placeholder,
 										selectsExperiments,
 										selectsSamples,
 										selectsDatasets) {
 	var isMultiple = isMultiple;
+	var isRequired = isRequired;
 	var placeholder = placeholder;
 	var selectsExperiments = selectsExperiments;
 	var selectsSamples = selectsSamples;
@@ -37,6 +39,7 @@ function AdvancedEntitySearchDropdown(	isMultiple,
 				function(ExperimentIdentifier, ExperimentFetchOptions) {
 		            var id1 = new ExperimentIdentifier(experimentIdentifier);
 		            var fetchOptions = new ExperimentFetchOptions();
+		            fetchOptions.withProperties();
 		            mainController.openbisV3.getExperiments([ id1 ], fetchOptions).done(function(map) {
 		            	_this.addSelected(map[experimentIdentifier]);
 		            });
@@ -49,6 +52,7 @@ function AdvancedEntitySearchDropdown(	isMultiple,
 				function(SampleIdentifier, SampleFetchOptions) {
 		            var id1 = new SampleIdentifier(sampleIdentifier);
 		            var fetchOptions = new SampleFetchOptions();
+		            fetchOptions.withProperties();
 		            mainController.openbisV3.getSamples([ id1 ], fetchOptions).done(function(map) {
 		            	_this.addSelected(map[sampleIdentifier]);
 		            });
@@ -61,6 +65,7 @@ function AdvancedEntitySearchDropdown(	isMultiple,
 				function(DataSetPermId, DataSetFetchOptions) {
 		            var id1 = new DataSetPermId(datasetPermId);
 		            var fetchOptions = new DataSetFetchOptions();
+		            fetchOptions.withProperties();
 		            mainController.openbisV3.getDataSets([ id1 ], fetchOptions).done(function(map) {
 		            	_this.addSelected(map[datasetPermId]);
 		            });
@@ -154,6 +159,9 @@ function AdvancedEntitySearchDropdown(	isMultiple,
 	this.init = function($container) {
 		$select.attr("multiple", "multiple");
 		
+		if(isRequired) {
+			$select.attr("required", "required");
+		}
 		if(isMultiple) {
 			maximumSelectionLength = 9999;
 		} else {
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/JupyterNotebookView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/JupyterNotebookView.js
index 4e41cc0bbca..f23425471e0 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/JupyterNotebookView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/JupyterNotebookView.js
@@ -27,8 +27,8 @@ function JupyterNotebookView(jupyterNotebookController, jupyterNotebookModel) {
 		$window.append($('<legend>').append("Create Jupyter Notebook"));
 		
 		var $datasetsContainer = $("<div>", { style : "width: 100%;" });
-		$window.append(FormUtil.getFieldForComponentWithLabel($datasetsContainer, "Datasets"));
-		var datasetsSearchDropdown = new AdvancedEntitySearchDropdown(true, "Select as many datasets as you need", false, false, true);
+		$window.append(FormUtil.getFieldForComponentWithLabel($datasetsContainer, "Datasets (*)"));
+		var datasetsSearchDropdown = new AdvancedEntitySearchDropdown(true, true, "Select as many datasets as you need", false, false, true);
 		datasetsSearchDropdown.init($datasetsContainer);
 		
 		switch(entity["@type"]) {
@@ -38,8 +38,8 @@ function JupyterNotebookView(jupyterNotebookController, jupyterNotebookModel) {
 		}
 		
 		var $ownerContainer = $("<div>", { style : "width: 100%;" });
-		$window.append(FormUtil.getFieldForComponentWithLabel($ownerContainer, "Owner"));
-		var ownerSearchDropdown = new AdvancedEntitySearchDropdown(false, "Select one owner " + ELNDictionary.sample, true, true, false);
+		$window.append(FormUtil.getFieldForComponentWithLabel($ownerContainer, "Owner (*)"));
+		var ownerSearchDropdown = new AdvancedEntitySearchDropdown(false, true, "Select one owner " + ELNDictionary.sample, true, true, false);
 		ownerSearchDropdown.init($ownerContainer);
 		
 		switch(entity["@type"]) {
@@ -65,22 +65,15 @@ function JupyterNotebookView(jupyterNotebookController, jupyterNotebookModel) {
 		
 		var $btnAccept = $('<input>', { 'type': 'submit', 'class' : 'btn btn-primary', 'value' : 'Accept' });
 		$window.submit(function() {
-			
 			var selectedDatasets = datasetsSearchDropdown.getSelected();
 			var notebookDatasets = [];
 			for(var dIdx = 0; dIdx < selectedDatasets.length; dIdx++) {
-				notebookDatasets.push(selectedDatasets.code);
+				notebookDatasets.push(selectedDatasets[dIdx].permId.permId);
 			}
 				
 			var selectedOwner = ownerSearchDropdown.getSelected();
-			var notebookOwner = [];
-			
-			if(notebookDatasets.length > 0) {
-				_this._jupyterNotebookController.create($workspace.val(), $notebookName.val(), notebookDatasets);
-			} else {
-				Util.showError("Select at least one dataset.", function() {}, true);
-			}
-			
+			var notebookOwner = selectedOwner[0];
+			_this._jupyterNotebookController.create($workspace.val(), $notebookName.val(), notebookDatasets);
 		});
 		var $btnCancel = $('<a>', { 'class' : 'btn btn-default' }).append('Cancel');
 		$btnCancel.click(function() {
-- 
GitLab