From 4c80ecfbc3ec827d3fb8fae3f523856b346f517f Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Fri, 18 Sep 2015 14:12:16 +0000
Subject: [PATCH] SSDM-2495 : Refactoring, removing/merging/categorizing sample
 search calls

SVN: 34673
---
 .../1/as/webapps/eln-lims/html/index.html     |  8 +-
 .../html/js/controllers/MainController.js     | 78 +++++++++++--------
 .../eln-lims/html/js/server/ServerFacade.js   | 14 +++-
 3 files changed, 62 insertions(+), 38 deletions(-)

diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/index.html b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/index.html
index a2e09644f56..ec1fd28acab 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/index.html
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/index.html
@@ -222,9 +222,13 @@
 	
 		$('#login-form').submit(function() {
 			Util.blockUI();
+			var username = $('#username').val();
+			var password = $('#password').val();
+			
 			mainController.serverFacade.login(
-					$.trim($('#username').val()), $.trim($('#password').val()), 
-					function(data) { mainController.enterApp(data) });
+					$.trim($('#username').val()), 
+					$.trim($('#password').val()), 
+					function(data) { mainController.enterApp(data, username, password) });
 		});
 		
 		mainController.serverFacade.ifRestoredSessionActive(function(data) { mainController.enterApp(data) });
diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js
index d7cbbf193c2..269d173a4ee 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js
@@ -55,7 +55,7 @@ function MainController(profile) {
 	// Validates and enters the app
 	//
 	
-	this.enterApp = function(data) {
+	this.enterApp = function(data, username, password) {
 		var localReference = this;
 		//
 		// Check Credentials
@@ -97,47 +97,57 @@ function MainController(profile) {
 				//Load datastores for automatic DSS configuration, the first one will be used
 				localReference.serverFacade.listDataStores(function(dataStores) {
 						localReference.profile.allDataStores = dataStores.result;
-				
-						//Load display settings
-						localReference.serverFacade.getUserDisplaySettings( function(response) {
-							if(response.result) {
-								localReference.profile.displaySettings = response.result;
-							}
-							
-							//Load Experiment Types
-							localReference.serverFacade.listExperimentTypes(function(experiments) {
-								localReference.profile.allExperimentTypes = experiments.result;
-								
+						
+						var nextInit = function() {
+							//Load display settings
+							localReference.serverFacade.getUserDisplaySettings( function(response) {
+								if(response.result) {
+									localReference.profile.displaySettings = response.result;
+								}
 								
-								//Init profile
-								localReference.profile.init(function() {
-									//Start App
+								//Load Experiment Types
+								localReference.serverFacade.listExperimentTypes(function(experiments) {
+									localReference.profile.allExperimentTypes = experiments.result;
+									
 									
-									localReference.sideMenu = new SideMenuWidgetController(localReference);
-									localReference.sideMenu.init($("#sideMenu"), function() {
-										//Page reload using the URL info
-										var queryString = Util.queryString();
-										var menuUniqueId = queryString.menuUniqueId;
-										var viewName = queryString.viewName;
-										var viewData = queryString.viewData;
-										var hideMenu = queryString.hideMenu;
+									//Init profile
+									localReference.profile.init(function() {
+										//Start App
 										
-										if(viewName && viewData) {
-											localReference.sideMenu.moveToNodeId(menuUniqueId);
-											localReference.changeView(viewName, viewData);
+										localReference.sideMenu = new SideMenuWidgetController(localReference);
+										localReference.sideMenu.init($("#sideMenu"), function() {
+											//Page reload using the URL info
+											var queryString = Util.queryString();
+											var menuUniqueId = queryString.menuUniqueId;
+											var viewName = queryString.viewName;
+											var viewData = queryString.viewData;
+											var hideMenu = queryString.hideMenu;
 											
-											if(hideMenu === "true") {
-												localReference.sideMenu.hideSideMenu();
+											if(viewName && viewData) {
+												localReference.sideMenu.moveToNodeId(menuUniqueId);
+												localReference.changeView(viewName, viewData);
+												
+												if(hideMenu === "true") {
+													localReference.sideMenu.hideSideMenu();
+												}
+											} else {
+												localReference.changeView("showBlancPage", null);
 											}
-										} else {
-											localReference.changeView("showBlancPage", null);
-										}
-										Util.unblockUI();
+											Util.unblockUI();
+										});
 									});
+									
 								});
-								
 							});
-						});
+						}
+						
+						if(username && password) {
+							localReference.serverFacade.initServices(username, password, nextInit);
+						} else {
+							nextInit();
+						}
+						
+
 				});
 			}
 		);
diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
index df1668af2c2..1c35e3b9e90 100644
--- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
+++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
@@ -69,6 +69,17 @@ function ServerFacade(openbisServer) {
 		this.openbisServer.logout(callbackFunction);
 	}
 	
+	this.initServices = function(username, password, callbackFunction) {
+		var defaultDataSetCode = profile.getDefaultDataStoreCode();
+		mainController.serverFacade.createReportFromAggregationService(defaultDataSetCode, {
+			"method" : "initServices",
+			"username" : username,
+			"password" : password
+		}, function(result) {
+			callbackFunction();
+		});
+	}
+	
 	//
 	// User Related Functions
 	//
@@ -77,8 +88,7 @@ function ServerFacade(openbisServer) {
 	};
 	
 	this.registerUserPassword = function(userId, userPass, callbackFunction) {
-		this.createReportFromAggregationService(
-			profile.getDefaultDataStoreCode(),
+		this.createReportFromAggregationService(profile.getDefaultDataStoreCode(),
 			{
 				"method" : "registerUserPassword",
 				"userId" : userId,
-- 
GitLab