diff --git a/web/pgadmin/tools/debugger/__init__.py b/web/pgadmin/tools/debugger/__init__.py index f7d0e7b..6543b13 100644 --- a/web/pgadmin/tools/debugger/__init__.py +++ b/web/pgadmin/tools/debugger/__init__.py @@ -1343,8 +1343,16 @@ def poll_end_execution_result(trans_id): if conn.connected(): statusmsg = conn.status_message() status, result, col_info = conn.poll() - if status == ASYNC_OK and session['functionData'][str(trans_id)]['language'] == 'edbspl': + if status == ASYNC_OK and \ + not session['functionData'][str(trans_id)]['is_func'] and \ + session['functionData'][str(trans_id)]['language'] == 'edbspl': status = 'Success' + additional_msgs = conn.messages() + if len(additional_msgs) > 0: + if statusmsg and statusmsg == 'SELECT 1': + statusmsg = '' + statusmsg = "
".join(additional_msgs) + "
" + statusmsg if statusmsg is not None else '' + return make_json_response(success=1, info=gettext("Execution Completed."), data={'status': status, 'status_message': statusmsg}) if result: @@ -1354,6 +1362,12 @@ def poll_end_execution_result(trans_id): data={'status': status, 'status_message': result}) else: status = 'Success' + additional_msgs = conn.messages() + if len(additional_msgs) > 0: + if statusmsg and statusmsg == 'SELECT 1': + statusmsg = '' + statusmsg = "
".join(additional_msgs) + "
" + statusmsg if statusmsg is not None else '' + columns = [] # Check column info is available or not if col_info is not None and len(col_info) > 0: @@ -1369,6 +1383,12 @@ def poll_end_execution_result(trans_id): 'col_info': columns, 'status_message': statusmsg}) else: status = 'Busy' + additional_msgs = conn.messages() + if len(additional_msgs) > 0: + if statusmsg and statusmsg == 'SELECT 1': + statusmsg = '' + statusmsg = "
".join(additional_msgs) + "
" + statusmsg if statusmsg is not None else '' + return make_json_response(data={'status': status, 'result': result, 'status_message': statusmsg}) else: status = 'NotConnected' result = gettext('Not connected to server or connection with the server has been closed.') diff --git a/web/pgadmin/tools/debugger/templates/debugger/js/direct.js b/web/pgadmin/tools/debugger/templates/debugger/js/direct.js index 452617b..babd00c 100644 --- a/web/pgadmin/tools/debugger/templates/debugger/js/direct.js +++ b/web/pgadmin/tools/debugger/templates/debugger/js/direct.js @@ -392,6 +392,7 @@ define( url: baseUrl, method: 'GET', success: function(res) { + var old_msgs='', new_msgs=''; if (res.data.status === 'Success') { if(res.data.result == undefined ) { /* @@ -411,7 +412,15 @@ define( ); // Update the message tab of the debugger - pgTools.DirectDebug.dbmsMessages.$elem.text(res.data.status_message); + if (res.data.status_message) { + old_msgs = pgTools.DirectDebug.messages_panel.$container.find('.messages').html(); + if(old_msgs) { + new_msgs = (old_msgs + '\n' + res.data.status_message).replace(/(?:\r\n|\r|\n)/g, '
'); + } else { + new_msgs = res.data.status_message; + } + pgTools.DirectDebug.messages_panel.$container.find('.messages').html(new_msgs); + } // Execution completed so disable the buttons other than "Continue/Start" button because user can still // start the same execution again. @@ -439,7 +448,15 @@ define( ); // Update the message tab of the debugger - pgTools.DirectDebug.messages_panel.$container.find('.messages').text(res.data.status_message); + if (res.data.status_message) { + old_msgs = pgTools.DirectDebug.messages_panel.$container.find('.messages').html(); + if(old_msgs) { + new_msgs = (old_msgs + '\n' + res.data.status_message).replace(/(?:\r\n|\r|\n)/g, '
'); + } else { + new_msgs = res.data.status_message; + } + pgTools.DirectDebug.messages_panel.$container.find('.messages').html(new_msgs); + } // Execution completed so disable the buttons other than "Continue/Start" button because user can still // start the same execution again. @@ -454,6 +471,16 @@ define( else if (res.data.status === 'Busy') { // If status is Busy then poll the result by recursive call to the poll function //self.poll_end_execution_result(trans_id); + // Update the message tab of the debugger + if(res.data.status_message) { + old_msgs = pgTools.DirectDebug.messages_panel.$container.find('.messages').html(); + if(old_msgs) { + new_msgs = (old_msgs + '\n' + res.data.status_message).replace(/(?:\r\n|\r|\n)/g, '
'); + } else { + new_msgs = res.data.status_message; + } + pgTools.DirectDebug.messages_panel.$container.find('.messages').html(new_msgs); + } } else if (res.data.status === 'NotConnected') { Alertify.alert( @@ -473,7 +500,16 @@ define( function() { } ); - pgTools.DirectDebug.messages_panel.$container.find('.messages').text(res.data.status_message); + if (res.data.status_message) { + old_msgs = pgTools.DirectDebug.messages_panel.$container.find('.messages').html(); + if(old_msgs) { + new_msgs = (old_msgs + '\n' + res.data.status_message).replace(/(?:\r\n|\r|\n)/g, '
'); + } else { + new_msgs = res.data.status_message; + } + pgTools.DirectDebug.messages_panel.$container.find('.messages').html(new_msgs); + } + pgTools.DirectDebug.messages_panel.focus(); // Execution completed so disable the buttons other than "Continue/Start" button because user can still