From 91e3ad7dc1c35bc6710a08a4cc9e34618f56ea6f Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Wed, 20 Sep 2017 09:57:18 +0000 Subject: [PATCH] SSDM-4223 : Jupyter integration - ongoing work SVN: 38736 --- .../widgets/AdvancedEntitySearchDropdown.js | 56 ++++++++++++++++--- .../widgets/JupyterNotebookView.js | 10 ++-- 2 files changed, 53 insertions(+), 13 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 4b664c5505e..95df16dea5b 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 @@ -31,22 +31,62 @@ function AdvancedEntitySearchDropdown( isMultiple, // External API // - this.addSelected = function(entity) { - var text = getDisplayName(entity); + this.addSelectedExperiment = function(experimentIdentifier) { + var _this = this; + require([ 'as/dto/experiment/id/ExperimentIdentifier', "as/dto/experiment/fetchoptions/ExperimentFetchOptions" ], + function(ExperimentIdentifier, ExperimentFetchOptions) { + var id1 = new ExperimentIdentifier(experimentIdentifier); + var fetchOptions = new ExperimentFetchOptions(); + mainController.openbisV3.getExperiments([ id1 ], fetchOptions).done(function(map) { + _this.addSelected(map[experimentIdentifier]); + }); + }); + } + + this.addSelectedSample = function(sampleIdentifier) { + var _this = this; + require([ "as/dto/sample/id/SampleIdentifier", "as/dto/sample/fetchoptions/SampleFetchOptions" ], + function(SampleIdentifier, SampleFetchOptions) { + var id1 = new SampleIdentifier(sampleIdentifier); + var fetchOptions = new SampleFetchOptions(); + mainController.openbisV3.getSamples([ id1 ], fetchOptions).done(function(map) { + _this.addSelected(map[sampleIdentifier]); + }); + }); + } + + this.addSelectedDataSet = function(datasetPermId) { + var _this = this; + require([ "as/dto/dataset/id/DataSetPermId", "as/dto/dataset/fetchoptions/DataSetFetchOptions" ], + function(DataSetPermId, DataSetFetchOptions) { + var id1 = new DataSetPermId(datasetPermId); + var fetchOptions = new DataSetFetchOptions(); + mainController.openbisV3.getDataSets([ id1 ], fetchOptions).done(function(map) { + _this.addSelected(map[datasetPermId]); + }); + }); + } + + this.addSelected = function(v3entity) { + var text = getDisplayName(v3entity); var id = null; - if(entity.permId && entity.permId.permId) { //If is a v3 object - id = entity.permId.permId; - } else if(entity.permId) { //If is a v1 object - id = entity.permId; + if(v3entity.permId && v3entity.permId.permId) { //Only v3 objects supported + id = v3entity.permId.permId; } else { - id = entity.code; // If is a v1 dataset + throw { + name: "NonV3ObjectException", + message: "Object without v3 permId", + toString: function() { + return this.name + ": " + this.message; + } + } } var data = { id : id, text : text, - data : entity + data : v3entity }; var newOption = new Option(text, id, true, true); 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 d40db3b232d..4e41cc0bbca 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 @@ -33,7 +33,7 @@ function JupyterNotebookView(jupyterNotebookController, jupyterNotebookModel) { switch(entity["@type"]) { case "DataSet": - datasetsSearchDropdown.addSelected(entity); + datasetsSearchDropdown.addSelectedDataSet(entity.code); break; } @@ -45,16 +45,16 @@ function JupyterNotebookView(jupyterNotebookController, jupyterNotebookModel) { switch(entity["@type"]) { case "DataSet": if(entity.sampleIdentifierOrNull) { - + ownerSearchDropdown.addSelectedSample(entity.sampleIdentifierOrNull); } else if(entity.experimentIdentifier) { - + ownerSearchDropdown.addSelectedExperiment(entity.experimentIdentifier); } break; case "Sample": - //ownerSearchDropdown.addSelected(entity); + ownerSearchDropdown.addSelectedSample(entity.identifier); break; case "Experiment": - //ownerSearchDropdown.addSelected(entity); + ownerSearchDropdown.addSelectedExperiment(entity.identifier); break; } -- GitLab