From c98782a8072c1ca9b37c8d4f7554c508c7200142 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Mon, 10 Jul 2017 08:55:59 +0000 Subject: [PATCH] SSDM-4032 : Force sample type SVN: 38510 --- .../1/as/webapps/eln-lims/html/js/util/FormUtil.js | 8 +++++++- .../html/js/views/SampleTable/SampleTableModel.js | 1 + .../html/js/views/SampleTable/SampleTableView.js | 14 ++++++++++++-- .../SampleTable/widgets/TypeAndFileController.js | 4 ++-- .../views/SampleTable/widgets/TypeAndFileModel.js | 4 ++-- .../views/SampleTable/widgets/TypeAndFileView.js | 2 +- 6 files changed, 25 insertions(+), 8 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js index 1cde176b5f7..2b6b08297ab 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js @@ -236,7 +236,7 @@ var FormUtil = new function() { return $component; } - this.getSampleTypeDropdown = function(id, isRequired, showEvenIfHidden) { + this.getSampleTypeDropdown = function(id, isRequired, showEvenIfHidden, showOnly) { var sampleTypes = this.profile.getAllSampleTypes(); var $component = $("<select>", {"id" : id, class : 'form-control'}); @@ -248,6 +248,12 @@ var FormUtil = new function() { for(var i = 0; i < sampleTypes.length; i++) { var sampleType = sampleTypes[i]; + if(showOnly && ($.inArray(sampleType.code, showOnly) !== -1)) { + //Show + } else if(showOnly) { + continue; + } + if(showEvenIfHidden && ($.inArray(sampleType.code, showEvenIfHidden) !== -1)) { // Show even if hidden } else if (profile.isSampleTypeHidden(sampleType.code)) { diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableModel.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableModel.js index b29556610c4..3931ddd0cf8 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableModel.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableModel.js @@ -21,4 +21,5 @@ function SampleTableModel(title, experimentIdentifier, projectPermId, showInProj this.projectPermId = projectPermId; this.showInProjectOverview = showInProjectOverview; this.allSamples = new Array(); + this.sampleTypeCodeToUse = null; } \ 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/SampleTable/SampleTableView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableView.js index 7b532e56b87..3a81f2e37d3 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 @@ -67,6 +67,7 @@ function SampleTableView(sampleTableController, sampleTableModel) { } var sampleTypeCodeToUse = (mandatorySampleTypeCode)?mandatorySampleTypeCode:sampleTypeCode; + this._sampleTableModel.sampleTypeCodeToUse = sampleTypeCodeToUse; //Add Sample Type if(sampleTypeCodeToUse !== null) { @@ -200,6 +201,10 @@ function SampleTableView(sampleTableController, sampleTableModel) { this.registerSamples = function(experimentIdentifier) { var _this = this; + var allowedSampleTypes = null; + if(this._sampleTableModel.sampleTypeCodeToUse) { + allowedSampleTypes = [this._sampleTableModel.sampleTypeCodeToUse, "STORAGE_POSITION"]; + } var typeAndFileController = new TypeAndFileController('Register ' + ELNDictionary.Samples + '', "REGISTRATION", function(type, file) { Util.blockUI(); mainController.serverFacade.fileUpload(typeAndFileController.getFile(), function(result) { @@ -223,6 +228,8 @@ function SampleTableView(sampleTableController, sampleTableModel) { if(infoData.result.identifiersPressent) { mainController.serverFacade.registerSamples(typeAndFileController.getSampleTypeCode(), "sample-file-upload", null, finalCallback); } else { + mainController.serverFacade.registerSamples(typeAndFileController.getSampleTypeCode(), "sample-file-upload", '/' + space, finalCallback); + mainController.serverFacade.listSpacesWithProjectsAndRoleAssignments(null, function(data) { var spaces = []; for(var i = 0; i < data.result.length; i++) { @@ -253,11 +260,14 @@ function SampleTableView(sampleTableController, sampleTableModel) { } ); }); - }); + }, allowedSampleTypes); typeAndFileController.init(); } this.updateSamples = function(experimentIdentifier) { + if(this._sampleTableModel.sampleTypeCodeToUse) { + allowedSampleTypes = [this._sampleTableModel.sampleTypeCodeToUse, "STORAGE_POSITION"]; + } var typeAndFileController = new TypeAndFileController('Update ' + ELNDictionary.Samples + '', "UPDATE", function(type, file) { Util.blockUI(); var finalCallback = function(data) { @@ -277,7 +287,7 @@ function SampleTableView(sampleTableController, sampleTableModel) { //Code After the upload mainController.serverFacade.updateSamples(typeAndFileController.getSampleTypeCode(), "sample-file-upload", null,finalCallback); }); - }); + }, allowedSampleTypes); typeAndFileController.init(); } } \ 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/SampleTable/widgets/TypeAndFileController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileController.js index d9a757df7c6..17265ae1a90 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileController.js @@ -14,8 +14,8 @@ * limitations under the License. */ -function TypeAndFileController(title, linkType, actionFunction) { - this._typeAndFileModel = new TypeAndFileModel(title, linkType, actionFunction); +function TypeAndFileController(title, linkType, actionFunction, allowedSampleTypes) { + this._typeAndFileModel = new TypeAndFileModel(title, linkType, actionFunction, allowedSampleTypes); this._typeAndFileView = new TypeAndFileView(this, this._typeAndFileModel); this.getFile = function() { diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileModel.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileModel.js index 021fe40c790..f6eaf50c512 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileModel.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileModel.js @@ -14,10 +14,10 @@ * limitations under the License. */ -function TypeAndFileModel(title, linkType, actionFunction) { +function TypeAndFileModel(title, linkType, actionFunction, allowedSampleTypes) { this.title = title; this.linkType = linkType; this.actionFunction = actionFunction; + this.allowedSampleTypes = allowedSampleTypes; this.sampleTypeCode = null; - this.file = null; } \ 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/SampleTable/widgets/TypeAndFileView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileView.js index 47624336db5..d1469443edf 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/widgets/TypeAndFileView.js @@ -30,7 +30,7 @@ function TypeAndFileView(typeAndFileController, typeAndFileModel) { $window.append($('<legend>').append(this._typeAndFileModel.title)); - var $sampleTypeDropDown = FormUtil.getSampleTypeDropdown(null, true, ["STORAGE_POSITION"]); + var $sampleTypeDropDown = FormUtil.getSampleTypeDropdown(null, true, ["STORAGE_POSITION"], this._typeAndFileModel.allowedSampleTypes); $sampleTypeDropDown.change(function(event) { _this._typeAndFileModel.sampleTypeCode = $(this).val(); _this.updateLink($(this).val()); -- GitLab