diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormController.js index e41f3e82aaab0443bcaf0bf87af6d5833fd43962..9aa712c5c64652a41f92ba2648b1e54ab401d34e 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormController.js @@ -21,23 +21,33 @@ function ProjectFormController(mainController, mode, project) { this.init = function(views) { var _this = this; - - require([ "as/dto/project/id/ProjectPermId", "as/dto/project/fetchoptions/ProjectFetchOptions" ], - function(ProjectPermId, ProjectFetchOptions) { + if (project.permId) { + require([ "as/dto/project/id/ProjectPermId", "as/dto/project/fetchoptions/ProjectFetchOptions", + "as/dto/experiment/id/ExperimentIdentifier", "as/dto/rights/fetchoptions/RightsFetchOptions" ], + function(ProjectPermId, ProjectFetchOptions, ExperimentIdentifier, RightsFetchOptions) { var id = new ProjectPermId(project.permId); var fetchOptions = new ProjectFetchOptions(); fetchOptions.withSpace(); mainController.openbisV3.getProjects([ id ], fetchOptions).done(function(map) { - _this._projectFormModel.v3_project = map[id]; - _this._mainController.getUserRole({ - space: _this._projectFormModel.project.spaceCode, - project: _this._projectFormModel.project.code, - }, function(roles){ - _this._projectFormModel.roles = roles; - _this._projectFormView.repaint(views); - }); - }); - }); + _this._projectFormModel.v3_project = map[id]; + var spaceCode = _this._projectFormModel.project.spaceCode; + var projectCode = _this._projectFormModel.project.code; + _this._mainController.getUserRole({ + space: spaceCode, + project: projectCode, + }, function(roles){ + _this._projectFormModel.roles = roles; + var dummyId = new ExperimentIdentifier("/" + spaceCode + "/" + projectCode + "/DUMMY"); + mainController.openbisV3.getRights([dummyId], new RightsFetchOptions()).done(function(rightsByIds) { + _this._projectFormModel.projectRights = rightsByIds[dummyId]; + _this._projectFormView.repaint(views); + }); + }); + }); + }); + } else { + _this._projectFormView.repaint(views); + } } this.deleteProject = function(reason) { diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormView.js index 8172eac0ae39bd21568b781f008ea025e82ab345..0c0e09fb599da269629c96c94d7f0bce3957b6bd 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ProjectForm/ProjectFormView.js @@ -174,12 +174,13 @@ function ProjectFormView(projectFormController, projectFormModel) { Util.unblockUI(); }); }; - - //Operations - var $operationsMenu = FormUtil.getOperationsMenu([{ label: "Create " + experimentKindName, event: function() { - showSelectExperimentType(); - }}]); - toolbarModel.push({ component : $operationsMenu, tooltip: "Extra operations" }); + if (_this._allowedToCreateExperiments()) { + //Operations + var $operationsMenu = FormUtil.getOperationsMenu([{ label: "Create " + experimentKindName, event: function() { + showSelectExperimentType(); + }}]); + toolbarModel.push({ component : $operationsMenu, tooltip: "Extra operations" }); + } } else { var $saveBtn = FormUtil.getButtonWithIcon("glyphicon-floppy-disk", function() { _this._projectFormController.updateProject(); @@ -285,7 +286,7 @@ function ProjectFormView(projectFormController, projectFormModel) { this._allowedToCreateExperiments = function() { var project = this._projectFormModel.v3_project; - return project.frozenForExperiments == false; + return project.frozenForExperiments == false && this._projectFormModel.projectRights.rights.indexOf("CREATE") >= 0;; }; this._allowedToEdit = function() {