From 08fa5d3000cb00bd9e9f08e3232a8ef0982526a7 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Mon, 12 May 2014 11:51:26 +0000
Subject: [PATCH] SSDM-179: ELN UI - Navigation widget from spaces to
 experiments

SVN: 31482
---
 .../html/js/controllers/MainController.js       |  4 +++-
 .../newbrowser/html/js/server/ServerFacade.js   | 17 +++++++++++++++++
 .../newbrowser/html/js/widgets/BrowserWidget.js |  4 +---
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/controllers/MainController.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/controllers/MainController.js
index 5e60d525cbd..91dd8400a3c 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/controllers/MainController.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/controllers/MainController.js
@@ -170,7 +170,9 @@ function MainController(profile) {
 				break;
 			case "showViewExperiment":
 				var _this = this;
-				//TO-DO get the sample with the identifier and show the view
+				this.serverFacade.getELNExperimentSampleIdForExperiment(arg, function(permId) {
+					_this.changeView("showViewSamplePageFromPermId", permId);
+				});
 				break;
 			case "showViewSamplePageFromPermId":
 				var _this = this;
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js
index 7990e3900ab..845197eda33 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js
@@ -71,6 +71,23 @@ function ServerFacade(openbisServer) {
 		}
 	}
 	
+	this.getELNExperimentSampleIdForExperiment = function(experimentIdentifier, callbackFunction) {
+		this.openbisServer.listSamplesForExperiment(experimentIdentifier, function(data) {
+			var permId = null;
+			if(data.result) {
+				var experimentIdentifierParts = experimentIdentifier.split("/");
+				for(var i = 0; i < data.result.length; i++) {
+					var sample = data.result[i];
+					var sampleIdentifierParts = sample.identifier.split("/");
+					if(sampleIdentifierParts[2] == experimentIdentifierParts[3]) {
+						permId = sample.permId;
+					}
+				}
+			}
+			callbackFunction(permId);
+		});
+	}
+	
 	//
 	// Data Set Related Functions
 	//
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/BrowserWidget.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/BrowserWidget.js
index 3892da69762..f33bb3eb190 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/BrowserWidget.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/BrowserWidget.js
@@ -48,9 +48,7 @@ function BrowserWidget(containerId, mainController, serverFacade) {
 					if(project.experiments) {
 						for(var k = 0; k < project.experiments.length; k++) {
 							var experiment = project.experiments[k];
-							var experimentIdentifier = experiment.identifier.split("/");
-							var sampleIdentifier = "/" + experimentIdentifier[1] + "/" + experimentIdentifier[3];
-							experiments[experiment.code] = new BrowserExperiment("showViewExperiment", sampleIdentifier, experiment.code);
+							experiments[experiment.code] = new BrowserExperiment("showViewExperiment", experiment.identifier, experiment.code);
 						}
 					}
 					projects[project.code] = new BrowserProject(project.code, project.code, experiments);
-- 
GitLab