From 6acfdfed16206b9e97b5189abd43e7cea0f6d0f7 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Wed, 20 Apr 2016 13:50:49 +0000
Subject: [PATCH] SSDM-3325 : Experiment creation at project level having
 always defaults and posibility to choose like with samples.

SVN: 36242
---
 .../webapps/eln-lims/html/js/util/FormUtil.js | 16 ++++++++
 .../js/views/ProjectForm/ProjectFormView.js   | 37 +++++++++++--------
 2 files changed, 37 insertions(+), 16 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 20e650b8287..af82176923e 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
@@ -744,6 +744,22 @@ var FormUtil = new function() {
 		return $toolbarContainer;
 	}
 	
+	this.getOperationsMenu = function(items) {
+		var $dropDownMenu = $("<span>", { class : 'dropdown' });
+		var $caret = $("<a>", { 'href' : '#', 'data-toggle' : 'dropdown', class : 'dropdown-toggle btn btn-default'}).append("Operations ").append($("<b>", { class : 'caret' }));
+		var $list = $("<ul>", { class : 'dropdown-menu', 'role' : 'menu', 'aria-labelledby' :'sampleTableDropdown' });
+		$dropDownMenu.append($caret);
+		$dropDownMenu.append($list);
+		
+		for(var iIdx = 0; iIdx < items.length; iIdx++) {
+			var item = items[iIdx];
+			var $item = $("<li>", { 'role' : 'presentation' }).append($("<a>", {'title' : item.label}).append(item.label));
+			$item.click(item.event);
+			$list.append($item);
+		}
+		return $dropDownMenu;
+	}
+	
 	this.getFormLink = function(displayName, entityKind, permIdOrIdentifier) {
 		var view = null;
 		switch(entityKind) {
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 91c212785fe..b5fe15002ef 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
@@ -60,23 +60,22 @@ function ProjectFormView(projectFormController, projectFormModel) {
 		//
 		var toolbarModel = [];
 		if(this._projectFormModel.mode !== FormMode.CREATE) {
-			//Create Experiment
-			var $createExpBtn = FormUtil.getButtonWithIcon("glyphicon-plus", function() {
+			var showSelectExperimentType = function() {
+				var $dropdown = FormUtil.getExperimentTypeDropdown("experimentTypeDropdown", true);
+				Util.blockUI("Select the type for the Experiment: <br><br>" + $dropdown[0].outerHTML + "<br> or <a class='btn btn-default' id='experimentTypeDropdownCancel'>Cancel</a>");
 				
-				var showSelectExperimentType = function() {
-					var $dropdown = FormUtil.getExperimentTypeDropdown("experimentTypeDropdown", true);
-					Util.blockUI("Select the type for the Experiment: <br><br>" + $dropdown[0].outerHTML + "<br> or <a class='btn btn-default' id='experimentTypeDropdownCancel'>Cancel</a>");
-					
-					$("#experimentTypeDropdown").on("change", function(event) {
-						var experimentTypeCode = $("#experimentTypeDropdown")[0].value;
-						_this._projectFormController.createNewExperiment(experimentTypeCode);
-					});
-					
-					$("#experimentTypeDropdownCancel").on("click", function(event) { 
-						Util.unblockUI();
-					});
-				}
+				$("#experimentTypeDropdown").on("change", function(event) {
+					var experimentTypeCode = $("#experimentTypeDropdown")[0].value;
+					_this._projectFormController.createNewExperiment(experimentTypeCode);
+				});
 				
+				$("#experimentTypeDropdownCancel").on("click", function(event) { 
+					Util.unblockUI();
+				});
+			}
+			
+			//Create Experiment
+			var $createExpBtn = FormUtil.getButtonWithIcon("glyphicon-plus", function() {
 				if(profile.isInventorySpace(_this._projectFormModel.project.spaceCode)) {
 					var experimentType = profile.getExperimentTypeForExperimentTypeCode(_this._projectFormModel.project.spaceCode);
 					if(experimentType) {
@@ -85,7 +84,7 @@ function ProjectFormView(projectFormController, projectFormModel) {
 						showSelectExperimentType();
 					}
 				} else {
-					showSelectExperimentType();
+					_this._projectFormController.createNewExperiment("DEFAULT_EXPERIMENT");
 				}
 			});
 			toolbarModel.push({ component : $createExpBtn, tooltip: "Create Experiment" });
@@ -101,6 +100,12 @@ function ProjectFormView(projectFormController, projectFormModel) {
 				_this._projectFormController.deleteProject(reason);
 			}, true);
 			toolbarModel.push({ component : $deleteBtn, tooltip: "Delete" });
+			
+			//Operations
+			var $operationsMenu = FormUtil.getOperationsMenu([{ label: "Create Experiment", event: function() {
+				showSelectExperimentType();
+			}}]);
+			toolbarModel.push({ component : $operationsMenu, tooltip: "Extra operations" });
 		}
 		$formColumn.append(FormUtil.getToolbar(toolbarModel));
 		
-- 
GitLab