From 6c285fbf02d15a9cc1b21e82a09fcd9d69d0415e Mon Sep 17 00:00:00 2001
From: Nathanael Jourdane <nathanael.jourdane@irap.omp.eu>
Date: Wed, 25 Jan 2017 18:42:10 +0100
Subject: [PATCH] Disable services grid when processing the query.

---
 js/app/controllers/EpnTapModule.js | 12 ++++++++++++
 js/app/views/EpnTapUI.js           | 20 ++++++++++----------
 2 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/js/app/controllers/EpnTapModule.js b/js/app/controllers/EpnTapModule.js
index 83a9a2c..04f61d4 100644
--- a/js/app/controllers/EpnTapModule.js
+++ b/js/app/controllers/EpnTapModule.js
@@ -212,6 +212,7 @@ Ext.define('amdaDesktop.EpnTapModule', {
 	// *** Buttons events ***
 
 	onFirstPageBtnClicked: function() {
+		this.wait();
 		this.currentPageLb.setText('1');
 
 		this.nextBtn.setDisabled(false);
@@ -227,6 +228,7 @@ Ext.define('amdaDesktop.EpnTapModule', {
 	},
 
 	onPreviousPageBtnClicked: function() {
+		this.wait();
 		var newPageNumber = Number(this.currentPageLb.text) - 1;
 		this.currentPageLb.setText('' + newPageNumber);
 
@@ -245,6 +247,7 @@ Ext.define('amdaDesktop.EpnTapModule', {
 	},
 
 	onNextPageBtnClicked: function() {
+		this.wait();
 		var newPageNumber = Number(this.currentPageLb.text) + 1;
 		this.currentPageLb.setText('' + newPageNumber);
 
@@ -263,6 +266,7 @@ Ext.define('amdaDesktop.EpnTapModule', {
 	},
 
 	onLastPageBtnClicked: function() {
+		this.wait();
 		var newPageNumber = this.totalPagesLb.text;
 		this.currentPageLb.setText('' + newPageNumber);
 
@@ -281,6 +285,7 @@ Ext.define('amdaDesktop.EpnTapModule', {
 	// *** Grid click events ***
 
 	onServiceSelected: function(selectedServiceId) {
+		this.wait();
 		this.selectedServiceId = selectedServiceId;
 		var selectedServiceURL = this.services[selectedServiceId]['accessurl'];
 
@@ -345,6 +350,13 @@ Ext.define('amdaDesktop.EpnTapModule', {
 				console.log('Can not add granules: ' + e);
 			}
 		}
+		Ext.getCmp('servicesGrid').setDisabled(false);
+		Ext.getCmp('servicesGrid').getEl().setStyle('cursor', 'default'); // CSS is correctly changed but without visible result.
+	},
+
+	wait: function() {
+		this.servicesGrid.getEl().setStyle('cursor', 'wait');
+		this.servicesGrid.setDisabled(true); // CSS is correctly changed but without visible result.
 	},
 
 	updateServices: function() {
diff --git a/js/app/views/EpnTapUI.js b/js/app/views/EpnTapUI.js
index db414e3..1f47ae8 100644
--- a/js/app/views/EpnTapUI.js
+++ b/js/app/views/EpnTapUI.js
@@ -87,7 +87,9 @@ Ext.define('amdaUI.EpnTapUI', {
 				{text: 'Name', dataIndex: 'id', flex: 3},
 				{text: 'Results', dataIndex: 'nbResults', flex: 2}
 			],
-			renderer: function(value, metadata,record) { return getExpandableImage(value, metadata,record); },
+			renderer: function(value, metadata,record) {
+				return getExpandableImage(value, metadata,record);
+			},
 			listeners: {
 				'cellclick': function(grid, td, cellIndex, record) {
 					epnTapModule.onServiceSelected(record.data['id']);
@@ -96,15 +98,14 @@ Ext.define('amdaUI.EpnTapUI', {
 			renderTo: Ext.getBody()
 		});
 
-		var servicesGridView = this.servicesGrid.getView();
 		this.serviceTooltip = new Ext.tip.ToolTip({
 			id: 'serviceTooltip',
-			target: servicesGridView.el,
-			delegate: servicesGridView.itemSelector,
+			target: Ext.getCmp('servicesGrid').getView().el,
+			delegate: Ext.getCmp('servicesGrid').getView().itemSelector,
 			trackMouse: true,
 			listeners: {
 				beforeshow: function updateTipBody(tooltip) {
-					var service = servicesGridView.getRecord(tooltip.triggerElement);
+					var service = Ext.getCmp('servicesGrid').getView().getRecord(tooltip.triggerElement);
 					var ttContent = '<h3>' + service.get('shortName') + '</h3>';
 					ttContent += '<p>' + service.get('title') + '</p>';
 					ttContent += '<p>' + service.get('accessURL') + '</p>';
@@ -139,15 +140,14 @@ Ext.define('amdaUI.EpnTapUI', {
 			renderTo: Ext.getBody()
 		});
 
-		var granulesGridView = this.granulesGrid.getView();
 		this.granuleTooltip = new Ext.tip.ToolTip({
 			id: 'granuleTooltip',
-			target: granulesGridView.el,
-			delegate: granulesGridView.itemSelector,
+			target: Ext.getCmp('granulesGrid').getView().el,
+			delegate: Ext.getCmp('granulesGrid').getView().itemSelector,
 			trackMouse: true,
 			listeners: {
 				beforeshow: function updateTipBody(tooltip) {
-					var thumb = granulesGridView.getRecord(tooltip.triggerElement).get('thumbnail_url');
+					var thumb = Ext.getCmp('granulesGrid').getView().getRecord(tooltip.triggerElement).get('thumbnail_url');
 					tooltip.update('<img src="' + thumb + '">');
 				}
 			},
@@ -265,7 +265,7 @@ Ext.define('amdaUI.EpnTapUI', {
 			height: 20,
 			value: 20,
 			minValue: 1,
-			maxValue: 500,
+			maxValue: 2000,
 			listeners: {
 				'change': function(rowPerPageNf, newValue) {
 					epnTapModule.onRowsPerPageChanged(newValue);
--
libgit2 0.21.2