From dc23e86f8d112d9e70a914e6b0ff273713dd5d25 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Tue, 3 Jun 2014 12:56:37 +0000
Subject: [PATCH] SSDM-306: Show sub experiments on the menu refreshing it
 after creation.

SVN: 31642
---
 .../newbrowser/html/js/views/SampleForm.js    |  3 +++
 .../html/js/widgets/SideMenuWidget.js         | 25 +++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js
index 80368082223..91ee77ada20 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js
@@ -831,6 +831,9 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod
 			
 			var callbackOk = function() {
 				Util.unblockUI();
+				if(localReference.experimentIdentifier) {
+					mainController.sideMenu.refreshSubExperiment(localReference.experimentIdentifier);
+				}
 //				TO-DO: The Sample is not necessarily searchable after creation since the index runs asynchronously
 //				localReference.serverFacade.searchWithType(localReference.sampleTypeCode, $("#sampleCode")[0].value, function(data) {
 //					mainController.changeView('showViewSamplePageFromPermId',data[0].permId);
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 f3a9c26870d..9726b3a4159 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
@@ -33,6 +33,31 @@ function SideMenuWidget(mainController, containerId, serverFacade) {
 	this._pointerToMenuNode = this._menuStructure;
 	this.isHidden = false;
 	
+	this.refreshSubExperiment = function(experimentIdentifierToAskForSamples) {
+		var _this = this;
+		_this._serverFacade.listExperimentsForIdentifiers([experimentIdentifierToAskForSamples], function(data) {
+			var experimentToAskForSamples = data.result[0];
+			_this._serverFacade.listSamplesForExperiments([experimentToAskForSamples], function(subExperiments) {
+				var nodeCleared = false;
+				for(var i = 0; i < subExperiments.result.length; i++) {
+					var subExperiment = subExperiments.result[i];
+					if(subExperiment.experimentIdentifierOrNull) {
+						var projectCode = subExperiment.experimentIdentifierOrNull.split("/")[2];
+						var experimentCode = subExperiment.experimentIdentifierOrNull.split("/")[3];
+						var experimentNode = _this._getExperimentNodeForCode(projectCode, experimentCode);
+						if(!nodeCleared) {
+							experimentNode.newMenuIfSelected.children = [];
+							nodeCleared = true;
+						}
+						var menuItemSubExperiment = new SideMenuWidgetComponent(true, false, subExperiment.code, experimentNode, null, "showViewSamplePageFromPermId", subExperiment.permId, "(Sub Exp.)");
+						experimentNode.newMenuIfSelected.children.push(menuItemSubExperiment);
+					}
+				}
+				_this.repaint();
+			});
+		});
+	}
+	
 	this._getProjectNodeForCode = function(projectCode) {
 		for(var sIdx = 0; sIdx < this._menuStructure.newMenuIfSelected.children.length; sIdx++) {
 			var spaceNode = this._menuStructure.newMenuIfSelected.children[sIdx];
-- 
GitLab