From aa0b73c01e010da39e1a9628987aaf7658d48648 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Fri, 21 Jul 2017 09:21:41 +0000
Subject: [PATCH] SSDM-5266 : Show Experiment in object browser

SVN: 38561
---
 .../eln-lims/html/js/server/ServerFacade.js   |  3 +++
 .../js/views/DataGrid/SampleDataGridUtil.js   | 27 ++++++++++---------
 .../SampleTable/SampleTableController.js      |  3 ++-
 3 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
index 5878a577ec2..dc293a163d5 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
@@ -806,6 +806,9 @@ function ServerFacade(openbisServer) {
 						fetchOptions.withChildrenUsing(fetchOptions);
 					}
 				} else if(advancedFetchOptions.minTableInfo) {
+					if(advancedFetchOptions.withExperiment && fetchOptions.withExperiment) {
+						fetchOptions.withExperiment();
+					}
 					if(fetchOptions.withParents) {
 						fetchOptions.withParents();
 					}
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/SampleDataGridUtil.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/SampleDataGridUtil.js
index 35dccdd44e2..7087c6e9896 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/SampleDataGridUtil.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/SampleDataGridUtil.js
@@ -1,5 +1,5 @@
 var SampleDataGridUtil = new function() {
-	this.getSampleDataGrid = function(mandatoryConfigPostKey, samplesOrCriteria, rowClick, customOperations, customColumns, optionalConfigPostKey, isOperationsDisabled, isLinksDisabled, isMultiselectable) {
+	this.getSampleDataGrid = function(mandatoryConfigPostKey, samplesOrCriteria, rowClick, customOperations, customColumns, optionalConfigPostKey, isOperationsDisabled, isLinksDisabled, isMultiselectable, withExperiment) {
 		
 		//Fill Columns model
 		var columnsFirst = [];
@@ -68,13 +68,15 @@ var SampleDataGridUtil = new function() {
 			isExportable: true,
 			sortable : false
 		});
-		
-//		columnsFirst.push({
-//			label : ELNDictionary.ExperimentELN + '/' + ELNDictionary.ExperimentInventory,
-//			property : 'experiment',
-//			isExportable: true,
-//			sortable : false
-//		});
+
+		if(withExperiment) {
+			columnsFirst.push({
+				label : ELNDictionary.ExperimentELN + '/' + ELNDictionary.ExperimentInventory,
+				property : 'experiment',
+				isExportable: true,
+				sortable : false
+			});
+		}
 		
 		columnsFirst.push({
 			label : 'Preview',
@@ -235,7 +237,7 @@ var SampleDataGridUtil = new function() {
 		//Fill data model
 		var getDataList = null;
 		if(samplesOrCriteria.entityKind && samplesOrCriteria.rules) {
-			getDataList = SampleDataGridUtil.getDataListDynamic(samplesOrCriteria); //Load on demand model
+			getDataList = SampleDataGridUtil.getDataListDynamic(samplesOrCriteria, withExperiment); //Load on demand model
 		} else {
 			getDataList = SampleDataGridUtil.getDataList(samplesOrCriteria); //Static model
 		}
@@ -250,7 +252,7 @@ var SampleDataGridUtil = new function() {
 		return dataGridController;
 	}
 	
-	this.getDataListDynamic = function(criteria) {
+	this.getDataListDynamic = function(criteria, withExperiment) {
 		return function(callback, options) {
 			var callbackForSearch = function(result) {
 				var dataList = [];
@@ -285,7 +287,7 @@ var SampleDataGridUtil = new function() {
 										'sampleTypeCode' : sample.sampleTypeCode,
 										'default_space' : sample.spaceCode,
 										'permId' : sample.permId,
-//										'experiment' : sample.experimentIdentifierOrNull,
+										'experiment' : sample.experimentIdentifierOrNull,
 										'registrator' : registrator,
 										'registrationDate' : registrationDate,
 										'modifier' : modifier,
@@ -320,7 +322,8 @@ var SampleDataGridUtil = new function() {
 			}
 			
 			var fetchOptions = {
-					minTableInfo : true
+					minTableInfo : true,
+					withExperiment : withExperiment
 			};
 			
 			if(options) {
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableController.js
index 50e67be44dd..80822ec8027 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableController.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleTable/SampleTableController.js
@@ -70,7 +70,8 @@ function SampleTableController(parentController, title, experimentIdentifier, pr
 	
 	this._reloadTableWithAllSamples = function(advancedSampleSearchCriteria) {
 			//Create and display table
-			var dataGridController = SampleDataGridUtil.getSampleDataGrid(this._sampleTableModel.experimentIdentifier, advancedSampleSearchCriteria, null, null, null, null, null, null, true);
+			var withExperiment = !this._sampleTableModel.experimentIdentifier && !this._sampleTableModel.experiment;
+			var dataGridController = SampleDataGridUtil.getSampleDataGrid(this._sampleTableModel.experimentIdentifier, advancedSampleSearchCriteria, null, null, null, null, null, null, true, withExperiment);
 			
 			
 			var extraOptions = [];
-- 
GitLab