From 3e7ea1826544728606bd5c57dc4cdfa1270adeb1 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Fri, 22 May 2015 09:14:13 +0000
Subject: [PATCH] SSDM-1945: Hide Codes uses now names on forms headers,
 buttons and update left menu correctly, it's also the default.

SVN: 34023
---
 .../ExperimentFormController.js               |  2 +
 .../ExperimentForm/ExperimentFormView.js      | 40 ++++++++++---------
 .../views/SampleForm/SampleFormController.js  |  2 +-
 .../js/views/SampleForm/SampleFormView.js     | 15 ++++---
 .../SideMenu/SideMenuWidgetController.js      | 31 ++++++++++++++
 5 files changed, 65 insertions(+), 25 deletions(-)

diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js
index e9a710a36a7..edd65fe9fc4 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js
@@ -106,6 +106,8 @@ function ExperimentFormController(mainController, mode, experiment) {
 						if(_this._experimentFormModel.mode === FormMode.CREATE) {
 							var isInventory = profile.isInventorySpace(experimentSpace);
 							_this._mainController.sideMenu.refreshExperiment(experiment, isInventory);
+						} else if(_this._experimentFormModel.mode === FormMode.EDIT) {
+							_this._mainController.sideMenu.updateExperimentName(experiment);
 						}
 						_this._experimentFormModel.isFormDirty = false;
 						_this._mainController.changeView("showExperimentPageFromIdentifier", experimentIdentifier);
diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
index 0eddbbb636e..df7ae45329d 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
@@ -36,12 +36,24 @@ function ExperimentFormView(experimentFormController, experimentFormModel) {
 		//
 		// Title
 		//
-		var $formTitle = null;
-		if(this._experimentFormModel.mode === FormMode.VIEW || this._experimentFormModel.mode === FormMode.EDIT) {
-			$formTitle = $("<h2>").append("Experiment " + this._experimentFormModel.experiment.identifier);
-		} else {
-			$formTitle = $("<h2>").append("Create " + this._experimentFormModel.experiment.experimentTypeCode);
+		var nameLabel = this._experimentFormModel.experiment.properties[profile.propertyReplacingCode];
+		if(!nameLabel) {
+			nameLabel = this._experimentFormModel.experiment.code;
+		}
+		var title = '';
+		switch(this._experimentFormModel.mode) {
+	    	case FormMode.CREATE:
+	    		title = "Create " + this._experimentFormModel.experiment.experimentTypeCode;
+	    		break;
+	    	case FormMode.EDIT:
+	    		title = "Update " + nameLabel;
+	    		break;
+	    	case FormMode.VIEW:
+	    		title = "View " + nameLabel;
+	    		break;
 		}
+		
+		var $formTitle = $("<h2>").append(title);
 		$formColumn.append($formTitle);
 		
 		if(this._experimentFormModel.mode !== FormMode.CREATE) {
@@ -104,7 +116,7 @@ function ExperimentFormView(experimentFormController, experimentFormModel) {
 				delete project["@id"];
 				delete project["@type"];
 				mainController.serverFacade.listExperiments([project], function(data) {
-					var autoGeneratedCode = identifierParts[1] + "_EXP_" + (data.result.length + 1);
+					var autoGeneratedCode = identifierParts[2] + "_EXP_" + (data.result.length + 1);
 					$codeField.val(autoGeneratedCode);
 					_this._experimentFormModel.experiment.code = autoGeneratedCode;
 					
@@ -115,9 +127,9 @@ function ExperimentFormView(experimentFormController, experimentFormModel) {
 				});
 			});
 			
-			if(profile.hideCodes) {
-				$codeFieldRow.hide();
-			}
+//			if(profile.hideCodes) {
+//				$codeFieldRow.hide();
+//			}
 		}
 		
 		//
@@ -244,15 +256,7 @@ function ExperimentFormView(experimentFormController, experimentFormModel) {
 		
 		//Create/Update Buttons
 		if(this._experimentFormModel.mode === FormMode.EDIT || this._experimentFormModel.mode === FormMode.CREATE) {
-			var label = "";
-			
-			if(this._experimentFormModel.mode === FormMode.EDIT) {
-				label = "Update Experiment " + this._experimentFormModel.experiment.code;
-			} else if(this._experimentFormModel.mode === FormMode.CREATE) {
-				label = "Create Experiment";
-			}
-			
-			var $updateBtn = $("<input>", { "type": "submit", "class" : "btn btn-primary", 'value' : label });
+			var $updateBtn = $("<input>", { "type": "submit", "class" : "btn btn-primary", 'value' : title });
 			$formColumn.append($updateBtn);
 		}
 		
diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormController.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormController.js
index 0d3be8b5a50..e8e3b8c26c8 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormController.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormController.js
@@ -345,7 +345,7 @@ function SampleFormController(mainController, mode, sample) {
 			
 			var callbackOk = function() {
 				Util.unblockUI();
-				if((isCopyWithNewCode || _this._sampleFormModel.mode === FormMode.CREATE) && _this._sampleFormModel.isELNSubExperiment) {
+				if((isCopyWithNewCode || _this._sampleFormModel.mode === FormMode.CREATE || _this._sampleFormModel.mode === FormMode.EDIT) && _this._sampleFormModel.isELNSubExperiment) {
 					mainController.sideMenu.refreshSubExperiment(_this._sampleFormModel.sample.experimentIdentifierOrNull);
 				}
 				
diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
index 963ae4dc116..c351f094343 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
@@ -46,17 +46,20 @@ function SampleFormView(sampleFormController, sampleFormModel) {
 		// TITLE
 		//
 		var $formTitle = null;
-		
+		var nameLabel = this._sampleFormModel.sample.properties[profile.propertyReplacingCode];
+		if(!nameLabel) {
+			nameLabel = this._sampleFormModel.sample.code;
+		}
 		var title = null;
 		switch(this._sampleFormModel.mode) {
 	    	case FormMode.CREATE:
 	    		title = "Create " + this._sampleFormModel.sample.sampleTypeCode;
 	    		break;
 	    	case FormMode.EDIT:
-	    		title = "Update " + this._sampleFormModel.sample.code;
+	    		title = "Update " + nameLabel;
 	    		break;
 	    	case FormMode.VIEW:
-	    		title = "View " + this._sampleFormModel.sample.code;
+	    		title = "View " + nameLabel;
 	    		break;
 		} 
 		
@@ -192,9 +195,9 @@ function SampleFormView(sampleFormController, sampleFormModel) {
 		
 		$formColumn.append($codeField);
 		
-		if(profile.hideCodes) {
-			$codeField.hide();
-		}
+//		if(profile.hideCodes) {
+//			$codeField.hide();
+//		}
 		
 		//
 		// Registration and modification info
diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SideMenu/SideMenuWidgetController.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SideMenu/SideMenuWidgetController.js
index 6caeb61850d..d2bb19a9ea1 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SideMenu/SideMenuWidgetController.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SideMenu/SideMenuWidgetController.js
@@ -95,6 +95,37 @@ function SideMenuWidgetController(mainController) {
         this._sideMenuWidgetView.repaint();
     };
 
+    this._getUniqueId = function(uniqueId) {
+    	var itemsToCheck = [this._sideMenuWidgetModel.menuStructure];
+    	var currentItem = null;
+    	while(currentItem = itemsToCheck.shift()) {
+    		if(currentItem.newMenuIfSelected) {
+    			for (var i = 0; i < currentItem.newMenuIfSelected.children.length; i++) {
+        			var currentItemChild = currentItem.newMenuIfSelected.children[i];
+            		if(currentItemChild.uniqueId === uniqueId) {
+            			return currentItemChild;
+            		}
+            		itemsToCheck.push(currentItemChild);
+        		}
+    		}
+    	}
+    };
+    
+    this.updateExperimentName = function(experiment) {
+    	var node = this._getUniqueId(experiment.identifier);
+    	
+    	var displayName = null;
+        if (profile.hideCodes) {
+            displayName = experiment.properties[profile.propertyReplacingCode];
+        }
+        if (!displayName) {
+            displayName = experiment.code;
+        }
+        
+    	node.displayName = displayName;
+    	this._sideMenuWidgetView.repaint();
+    }
+    
     this.refreshExperiment = function(experiment, isInventory) {
         var projectIdentifierEnd = experiment.identifier.lastIndexOf("/");
         var projectIdentifier = experiment.identifier.substring(0, projectIdentifierEnd);
-- 
GitLab