diff --git a/web/pgadmin/static/js/sqleditor/query_tool_http_error_handler.js b/web/pgadmin/static/js/sqleditor/query_tool_http_error_handler.js index 97575c1ea..651ff6e91 100644 --- a/web/pgadmin/static/js/sqleditor/query_tool_http_error_handler.js +++ b/web/pgadmin/static/js/sqleditor/query_tool_http_error_handler.js @@ -63,6 +63,8 @@ export function handleQueryToolAjaxError( if(exception.status === 503 && exception.responseJSON.info !== undefined && exception.responseJSON.info == 'CONNECTION_LOST') { + // We will display re-connect dialog, no need to display error message again + msg = null; setTimeout(function() { if (stateToSave) { handler.saveState(stateToSave, stateParameters); diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index 386a655e4..6d53632a1 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -1370,8 +1370,12 @@ def start_query_download_tool(trans_id): ] = "attachment;filename={0}".format(filename) return r + except (ConnectionLost, SSHTunnelConnectionLost): + raise except Exception as e: - err_msg = gettext("Error: {0}").format(e.strerror) + current_app.logger.error(e) + err_msg = "Error: {0}".format( + e.strerror if hasattr(e, 'strerror') else str(e)) return internal_server_error(errormsg=err_msg) else: return internal_server_error( diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js index f5519fcdf..105e4ad30 100644 --- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js +++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js @@ -1305,7 +1305,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, null, [], false ); - self.update_msg_history(false, msg); + if (msg) + self.update_msg_history(false, msg); }); }, @@ -2195,9 +2196,10 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, xhr, null, [], false ); - alertify.dlgGetServerPass( - gettext('Connect to Server'), msg - ); + if (msg) + alertify.dlgGetServerPass( + gettext('Connect to Server'), msg + ); }); }, /* This function is used to create instance of SQLEditorView, @@ -2300,10 +2302,10 @@ define('tools.querytool', [ msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, jqx, null, [], false ); - - pgBrowser.report_error( - gettext('Error fetching SQL for script: %s.', msg) - ); + if (msg) + pgBrowser.report_error( + gettext('Error fetching SQL for script: %s.', msg) + ); }); } } @@ -2484,7 +2486,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_execute_view_data_query', [], true ); - self.update_msg_history(false, msg); + if (msg) + self.update_msg_history(false, msg); }); }, @@ -3237,7 +3240,8 @@ define('tools.querytool', [ // Enable query tool buttons and cancel button only if query tool if(self.is_query_tool) self.disable_tool_buttons(false); - self.update_msg_history(false, msg); + if (msg) + self.update_msg_history(false, msg); }); }, @@ -3395,7 +3399,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_select_file_handler', stateParams, false ); - alertify.error(msg); + if (msg) + alertify.error(msg); // hide cursor $busy_icon_div.removeClass('show_progress'); }); @@ -3446,7 +3451,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_save_file_handler', stateParams, false ); - alertify.error(msg); + if (msg) + alertify.error(msg); }); }, @@ -3575,7 +3581,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_include_filter', [], true ); - alertify.alert(gettext('Filter By Selection Error'), msg); + if (msg) + alertify.alert(gettext('Filter By Selection Error'), msg); }); }, @@ -3634,7 +3641,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_exclude_filter', [], true ); - alertify.alert(gettext('Filter Exclude Selection Error'), msg); + if (msg) + alertify.alert(gettext('Filter Exclude Selection Error'), msg); }); }, @@ -3672,7 +3680,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_remove_filter', [], true ); - alertify.alert(gettext('Remove Filter Error'), msg); + if (msg) + alertify.alert(gettext('Remove Filter Error'), msg); }); }, @@ -3803,7 +3812,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_set_limit', [], true ); - alertify.alert(gettext('Change limit Error'), msg); + if (msg) + alertify.alert(gettext('Change limit Error'), msg); }); }, @@ -3948,7 +3958,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_cancel_query', [], false ); - alertify.alert(gettext('Cancel Query Error'), msg); + if (msg) + alertify.alert(gettext('Cancel Query Error'), msg); }); }, @@ -4012,7 +4023,6 @@ define('tools.querytool', [ self.trigger('pgadmin-sqleditor:loading-icon:hide'); }).fail(function(err) { let msg = ''; - // Enable the execute button $('#btn-flash').prop('disabled', false); $('#btn-download').prop('disabled', false); @@ -4027,7 +4037,9 @@ define('tools.querytool', [ pgAdmin, self, err, gettext('Download CSV'), [], true ); } - alertify.alert(gettext('Download CSV error'), msg); + // Check if error message is present + if (msg) + alertify.alert(gettext('Download CSV error'), msg); }); }, @@ -4068,7 +4080,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_auto_rollback', [], true ); - alertify.alert(gettext('Auto Rollback Error'), msg); + if (msg) + alertify.alert(gettext('Auto Rollback Error'), msg); }); }, @@ -4100,7 +4113,8 @@ define('tools.querytool', [ let msg = httpErrorHandler.handleQueryToolAjaxError( pgAdmin, self, e, '_auto_commit', [], true ); - alertify.alert(gettext('Auto Commit Error'), msg); + if (msg) + alertify.alert(gettext('Auto Commit Error'), msg); }); },