diff --git a/web/pgadmin/static/js/sqleditor/execute_query.js b/web/pgadmin/static/js/sqleditor/execute_query.js index 2c966550c..8b3e1d91b 100644 --- a/web/pgadmin/static/js/sqleditor/execute_query.js +++ b/web/pgadmin/static/js/sqleditor/execute_query.js @@ -13,6 +13,7 @@ import url_for from '../url_for'; import axios from 'axios'; import * as httpErrorHandler from './query_tool_http_error_handler'; import * as queryTxnStatus from 'sources/sqleditor/query_txn_status_constants'; +import * as SqlEditorUtils from 'sources/sqleditor_utils'; class LoadingScreen { constructor(sqlEditor) { @@ -75,6 +76,8 @@ class ExecuteQuery { if (ExecuteQuery.isSqlCorrect(httpMessageData)) { self.loadingScreen.setMessage('Waiting for the query to complete...'); + // Disable drop down arrow to change connections + SqlEditorUtils.disable_connection_dropdown(true); self.updateSqlEditorStateWithInformationFromServer(httpMessageData.data); @@ -161,6 +164,10 @@ class ExecuteQuery { self.loadingScreen.hide(); self.sqlServerObject.update_msg_history(false, 'Execution Cancelled!', true); } + // Enable dropdown arrow to change connection if status is not Busy + if(! ExecuteQuery.isQueryStillRunning(httpMessage)){ + SqlEditorUtils.disable_connection_dropdown(false); + } } ).catch( error => { @@ -168,6 +175,8 @@ class ExecuteQuery { self.sqlServerObject.resetQueryHistoryObject(self.sqlServerObject); self.loadingScreen.hide(); + // Enable dropdown arrow to change connection + SqlEditorUtils.disable_connection_dropdown(false); self.sqlServerObject.setIsQueryRunning(false); if (self.sqlServerObject.is_query_tool) { self.enableSQLEditorButtons(); @@ -229,6 +238,7 @@ class ExecuteQuery { this.loadingScreen.hide(); this.enableSQLEditorButtons(); + SqlEditorUtils.disable_connection_dropdown(false); if (ExecuteQuery.wasConnectionLostToPythonServer(httpMessage.response)) { this.handleConnectionToServerLost(); return; diff --git a/web/pgadmin/static/js/sqleditor_utils.js b/web/pgadmin/static/js/sqleditor_utils.js index 5f5b149e0..e51cab57b 100644 --- a/web/pgadmin/static/js/sqleditor_utils.js +++ b/web/pgadmin/static/js/sqleditor_utils.js @@ -57,6 +57,17 @@ define(['jquery', 'underscore', 'sources/gettext', 'sources/url_for'], return string.charAt(0).toUpperCase() + string.slice(1); }, + // Disables arrow to change connection + disable_connection_dropdown: function (status) { + if (status){ + $('.conn-info-dd').prop('disabled',true); + $('.connection-data').css({pointerEvents: 'none', cursor: 'arrow'}); + }else{ + $('.conn-info-dd').prop('disabled',false); + $('.connection-data').css({pointerEvents: 'auto', cursor: 'pointer'}); + } + }, + // Status flag previousStatus: null,