From 5383348fbba7a968ba5d70499f40079f18c5dda6 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Mon, 29 Sep 2014 12:13:50 +0000
Subject: [PATCH] SSDM-948 : ELN UI - PAPER - Inventory Structure and more

SVN: 32519
---
 .../as/webapps/newbrowser/html/js/config/Profile.js  |  5 +++++
 .../views/ExperimentForm/ExperimentFormController.js |  3 ++-
 .../webapps/newbrowser/html/js/views/SampleTable.js  |  4 ++++
 .../newbrowser/html/js/widgets/SideMenuWidget.js     | 12 +++++++++---
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/config/Profile.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/config/Profile.js
index 708aae24e26..dd9a8ee4701 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/config/Profile.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/config/Profile.js
@@ -34,6 +34,11 @@ $.extend(DefaultProfile.prototype, {
 		this.ELNExperiments = ["SYSTEM_EXPERIMENT"];
 		this.notShowTypes = ["SYSTEM_EXPERIMENT"];
 		this.inventorySpaces = [];
+		
+		this.isInventorySpace = function(spaceCode) {
+			return ($.inArray(spaceCode, this.inventorySpaces) !== -1);
+		}
+		
 		this.hideCodes = false;
 		this.propertyReplacingCode = "NAME";
 		
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/ExperimentForm/ExperimentFormController.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/ExperimentForm/ExperimentFormController.js
index 41df73fd77f..dfd45f1a719 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/ExperimentForm/ExperimentFormController.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/ExperimentForm/ExperimentFormController.js
@@ -82,7 +82,8 @@ function ExperimentFormController(mainController, mode, experiment) {
 					var callbackOk = function() {
 						var projectIdentifier = "/" + experimentSpace + "/" + experimentProject;
 						if(_this._experimentFormModel.mode === FormMode.CREATE) {
-							_this._mainController.sideMenu.refreshExperiment(experiment);
+							var isInventory = profile.isInventorySpace(experimentSpace);
+							_this._mainController.sideMenu.refreshExperiment(experiment, isInventory);
 						}
 						_this._experimentFormModel.isFormDirty = false;
 						_this._mainController.changeView("showExperimentPageFromIdentifier", experimentIdentifier);
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js
index cb1b1fc9c7d..05bff72387b 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js
@@ -189,6 +189,10 @@ function SampleTable(serverFacade, sampleTableId, profile, sampleTypeCode, inspe
 				component += "<h1>Search Results</h1>";
 			} else {
 				var sampleType = this.profile.getSampleTypeForSampleTypeCode(this.sampleTypeCode);
+				if(!sampleType) {
+					$("#"+this.sampleTableId).append("<h1>No Samples Found</h1>");
+					return;
+				}
 				var sampleTypeDisplayName = Util.getEmptyIfNull(sampleType.description);
 				if(sampleTypeDisplayName === "") {
 					sampleTypeDisplayName = sampleType.code;
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js
index 0ec85de4a03..07a302f31d1 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js
@@ -45,7 +45,7 @@ function SideMenuWidget(mainController, containerId, serverFacade) {
 		this.repaint();
 	}
 	
-	this.refreshExperiment = function(experiment) {
+	this.refreshExperiment = function(experiment, isInventory) {
 		var projectNode = this._getProjectNodeForCode(experiment.identifier.split("/")[2]);
 		var newMenuIfSelectedExperiment = {
 				children : []
@@ -59,7 +59,13 @@ function SideMenuWidget(mainController, containerId, serverFacade) {
 			displayName = experiment.code;
 		}
 		
-		var menuItemExperiment = new SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, newMenuIfSelectedExperiment, "showExperimentPageFromIdentifier", experiment.identifier, "(Experiment)");
+		var menuItemExperiment = null;
+		if(isInventory) {
+			menuItemExperiment = new SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, null, "showSamplesPage", experiment.identifier + ":None");
+		} else {
+			menuItemExperiment = new SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, newMenuIfSelectedExperiment, "showExperimentPageFromIdentifier", experiment.identifier, "(Experiment)");
+		}
+		
 		projectNode.newMenuIfSelected.children.push(menuItemExperiment);
 		
 		this.repaint();
@@ -287,7 +293,7 @@ function SideMenuWidget(mainController, containerId, serverFacade) {
 									displayName = experiment.code;
 								}
 								
-								var menuItemExperiment = new 	SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, null, "showSamplesPage", experiment.identifier + ":" + experiment.permId /* "PROTEIN" */, "");
+								var menuItemExperiment = new SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, null, "showSamplesPage", experiment.identifier + ":" + experiment.permId /* "PROTEIN" */, "");
 								projectNode.newMenuIfSelected.children.push(menuItemExperiment);
 							}
 						}
-- 
GitLab