From e29c2f5064787108cd27c64c32f8d0fcb4700afb Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Wed, 13 Nov 2019 12:02:47 +0100 Subject: [PATCH] SSDM-4600: ELN: disable sample creation operation in sample table view --- .../1/as/webapps/eln-lims/html/js/util/IdentifierUtil.js | 6 ++++++ .../js/views/ExperimentForm/ExperimentFormController.js | 4 +--- .../html/js/views/SampleTable/SampleTableController.js | 9 ++++++++- .../html/js/views/SampleTable/SampleTableView.js | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/IdentifierUtil.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/IdentifierUtil.js index 47e7599b00b..f4143903670 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/IdentifierUtil.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/IdentifierUtil.js @@ -79,4 +79,10 @@ var IdentifierUtil = new function() { return experimentIdentifier.split('/')[2]; }; + + this.createDummySampleIdentifierFromExperimentIdentifier = function(experimentIdentifier) { + var spaceCode = this.getSpaceCodeFromIdentifier(experimentIdentifier); + var projectCode = this.getProjectCodeFromExperimentIdentifier(experimentIdentifier); + return "/" + spaceCode + "/" + projectCode + "/DUMMY"; + } } \ No newline at end of file diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js index b00b0a73c14..cfc32be5b7a 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js @@ -30,9 +30,7 @@ function ExperimentFormController(mainController, mode, experiment) { mainController.openbisV3.getExperiments([ id ], fetchOptions).done(function(map) { _this._experimentFormModel.v3_experiment = map[id]; var expeId = _this._experimentFormModel.v3_experiment.getIdentifier().getIdentifier(); - var spaceCode = IdentifierUtil.getSpaceCodeFromIdentifier(expeId); - var projectCode = IdentifierUtil.getProjectCodeFromExperimentIdentifier(expeId); - var dummySampleId = new SampleIdentifier("/" + spaceCode + "/" + projectCode + "/DUMMY"); + var dummySampleId = new SampleIdentifier(IdentifierUtil.createDummySampleIdentifierFromExperimentIdentifier(expeId)); mainController.openbisV3.getRights([ id , dummySampleId], null).done(function(rightsByIds) { _this._experimentFormModel.rights = rightsByIds[id]; _this._experimentFormModel.sampleRights = rightsByIds[dummySampleId]; diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableController.js index 5ccf0121755..b802d56f186 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableController.js @@ -65,7 +65,14 @@ function SampleTableController(parentController, title, experimentIdentifier, pr advancedSampleSearchCriteria.rules["2"] = { type : "Property", name : "$SHOW_IN_PROJECT_OVERVIEW", value : "true" }; } // - callback(); + require(["as/dto/sample/id/SampleIdentifier"], function(SampleIdentifier) { + var expeId = _this._sampleTableModel.experimentIdentifier; + var dummySampleId = new SampleIdentifier(IdentifierUtil.createDummySampleIdentifierFromExperimentIdentifier(expeId)); + mainController.openbisV3.getRights([ dummySampleId], null).done(function(rightsByIds) { + _this._sampleTableModel.sampleRights = rightsByIds[dummySampleId]; + callback(); + }); + }); this._reloadTableWithAllSamples(advancedSampleSearchCriteria); } diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js index 902473def55..18ce02f305a 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js @@ -132,7 +132,7 @@ function SampleTableView(sampleTableController, sampleTableModel) { $dropDownMenu.append($caret); $dropDownMenu.append($list); - if(_this._sampleTableModel.experimentIdentifier) { + if(_this._sampleTableModel.experimentIdentifier && _this._sampleTableModel.sampleRights.rights.indexOf("CREATE") >= 0) { var $createSampleOption = $("<li>", { 'role' : 'presentation' }).append($("<a>", {'title' : 'Create ' + ELNDictionary.Sample + '', 'id' : 'create-' + ELNDictionary.Sample.toLowerCase() + '-btn'}).append('Create ' + ELNDictionary.Sample + '')); $createSampleOption.click(function() { _this.createNewSample(_this._sampleTableModel.experimentIdentifier); -- GitLab