public inbox for [email protected]
help / color / mirror / Atom feed[pgAdmin][RM5519]: Unable to close tab after disconnecting server.
4+ messages / 3 participants
[nested] [flat]
* [pgAdmin][RM5519]: Unable to close tab after disconnecting server.
@ 2021-03-31 14:08 Pradip Parkale <[email protected]>
2021-03-31 14:23 ` Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Dave Page <[email protected]>
0 siblings, 1 reply; 4+ messages in thread
From: Pradip Parkale @ 2021-03-31 14:08 UTC (permalink / raw)
To: pgadmin-hackers
Hi Hackers,
Please find the attached patch for #5519. Updated the existing confirmation
message and also added a new confirmation dialog before closing the query
tool if the server is disconnected.
--
Thanks & Regards,
Pradip Parkale
Software Engineer | EnterpriseDB Corporation
Attachments:
[application/octet-stream] RM5519.patch (5.2K, 3-RM5519.patch)
download | inline diff:
diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py
index 37cc89c50..de3864be5 100644
--- a/web/pgadmin/tools/sqleditor/__init__.py
+++ b/web/pgadmin/tools/sqleditor/__init__.py
@@ -119,6 +119,7 @@ class SqlEditorModule(PgAdminModule):
'sqleditor.get_new_connection_data',
'sqleditor.get_new_connection_database',
'sqleditor.get_new_connection_user',
+ 'sqleditor._check_server_connection_status',
'sqleditor.get_new_connection_role',
'sqleditor.connect_server',
'sqleditor.connect_server_with_user',
@@ -1479,6 +1480,49 @@ def get_filter_data(trans_id):
return FilterDialog.get(status, error_msg, conn, trans_obj, session_ob)
[email protected](
+ '/get_server_connection/<int:sgid>/<int:sid>',
+ methods=["GET"], endpoint='_check_server_connection_status'
+)
+@login_required
+def _check_server_connection_status(sgid, sid=None):
+ """
+ This function returns the server connection details
+ """
+ try:
+ driver = get_driver(PG_DEFAULT_DRIVER)
+ from pgadmin.browser.server_groups.servers import \
+ server_icon_and_background
+ server = Server.query.filter_by(
+ id=sid).first()
+
+ manager = driver.connection_manager(server.id)
+ conn = manager.connection()
+ connected = conn.connected()
+
+ msg = "Success"
+ return make_json_response(
+ data={
+ 'status': True,
+ 'msg': msg,
+ 'result': {
+ 'server': connected
+ }
+ }
+ )
+
+ except Exception:
+ return make_json_response(
+ data={
+ 'status': False,
+ 'msg': ERROR_FETCHING_DATA,
+ 'result': {
+ 'server': False
+ }
+ }
+ )
+
+
@blueprint.route(
'/new_connection_dialog/<int:sgid>/<int:sid>',
methods=["GET"], endpoint='get_new_connection_data'
diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
index b87051bf7..cf2b0eec4 100644
--- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
@@ -4809,7 +4809,7 @@ define('tools.querytool', [
else if (!ignore_unsaved_query && self.is_query_tool
&& self.is_query_changed
&& self.preferences.prompt_save_query_changes) {
- msg = gettext('The text has changed. Do you want to save changes?');
+ msg = gettext('The query text has changed. Do you want to save changes?');
self.unsaved_changes_user_confirmation(msg, false);
} // If a transaction is currently ongoing
else if (self.preferences.prompt_commit_transaction
@@ -4938,14 +4938,44 @@ define('tools.querytool', [
break;
case 1: // Don't Save
self.close_on_save = false;
- if(this.is_unsaved_data)
- self.ignore_on_close.unsaved_data = true;
- else
- self.ignore_on_close.unsaved_query = true;
- // Go back to check for any other needed confirmations before closing
- if (!self.check_needed_confirmations_before_closing_panel()){
- closeEvent.cancel = true;
- }
+ $.ajax({
+ url: url_for('sqleditor._check_server_connection_status', {
+ 'sid': self.url_params.sid,
+ 'sgid': self.url_params.sgid,
+ }),
+ headers: {
+ 'Cache-Control' : 'no-cache',
+ },
+ }).done(function (res) {
+ let response = res.data.result.server;
+ if(response){
+ closeEvent.cancel = true;
+ if(this.is_unsaved_data)
+ self.ignore_on_close.unsaved_data = true;
+ else
+ self.ignore_on_close.unsaved_query = true;
+ // Go back to check for any other needed confirmations before closing
+ if (!self.check_needed_confirmations_before_closing_panel()){
+ closeEvent.cancel = true;
+ }
+ }else{
+ alertify.confirm(
+ gettext('Warning'),
+ gettext('Current trasaction is not commited because server is disconnected.'),
+ function() {
+ // Close the query tool if server is disconnected.
+ setTimeout(() => { self.close(); }, 200);
+ },
+ function() {
+ return true;
+ }
+ ).set('labels', {
+ ok: gettext('Ok')
+ });
+ }
+ }).fail(function() {
+ /* failure should be ignored */
+ });
break;
case 2: //Save
self.close_on_save = true;
^ permalink raw reply [nested|flat] 4+ messages in thread
* Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server.
2021-03-31 14:08 [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Pradip Parkale <[email protected]>
@ 2021-03-31 14:23 ` Dave Page <[email protected]>
2021-04-01 06:10 ` Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Pradip Parkale <[email protected]>
0 siblings, 1 reply; 4+ messages in thread
From: Dave Page @ 2021-03-31 14:23 UTC (permalink / raw)
To: Pradip Parkale <[email protected]>; +Cc: pgadmin-hackers
Thanks Pradip.
Before this is committed, let's change this:
gettext('Current trasaction is not commited because server is
disconnected.'),
to:
gettext('The current transaction has been rolled back because the server
was disconnected.'),
On Wed, Mar 31, 2021 at 3:09 PM Pradip Parkale <
[email protected]> wrote:
> Hi Hackers,
> Please find the attached patch for #5519. Updated the existing
> confirmation message and also added a new confirmation dialog before
> closing the query tool if the server is disconnected.
>
> --
> Thanks & Regards,
> Pradip Parkale
> Software Engineer | EnterpriseDB Corporation
>
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EDB: http://www.enterprisedb.com
^ permalink raw reply [nested|flat] 4+ messages in thread
* Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server.
2021-03-31 14:08 [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Pradip Parkale <[email protected]>
2021-03-31 14:23 ` Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Dave Page <[email protected]>
@ 2021-04-01 06:10 ` Pradip Parkale <[email protected]>
2021-04-01 06:44 ` Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Akshay Joshi <[email protected]>
0 siblings, 1 reply; 4+ messages in thread
From: Pradip Parkale @ 2021-04-01 06:10 UTC (permalink / raw)
To: Dave Page <[email protected]>; +Cc: pgadmin-hackers
Hi Hackers,
Please find the updated patch with the change mentioned by Dave.
On Wed, Mar 31, 2021 at 7:53 PM Dave Page <[email protected]> wrote:
> Thanks Pradip.
>
> Before this is committed, let's change this:
>
> gettext('Current trasaction is not commited because server is
> disconnected.'),
>
> to:
>
> gettext('The current transaction has been rolled back because the server
> was disconnected.'),
>
> On Wed, Mar 31, 2021 at 3:09 PM Pradip Parkale <
> [email protected]> wrote:
>
>> Hi Hackers,
>> Please find the attached patch for #5519. Updated the existing
>> confirmation message and also added a new confirmation dialog before
>> closing the query tool if the server is disconnected.
>>
>> --
>> Thanks & Regards,
>> Pradip Parkale
>> Software Engineer | EnterpriseDB Corporation
>>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EDB: http://www.enterprisedb.com
>
>
--
Thanks & Regards,
Pradip Parkale
Software Engineer | EnterpriseDB Corporation
Attachments:
[application/octet-stream] RM5519_v1.patch (5.2K, 3-RM5519_v1.patch)
download | inline diff:
diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py
index 37cc89c50..de3864be5 100644
--- a/web/pgadmin/tools/sqleditor/__init__.py
+++ b/web/pgadmin/tools/sqleditor/__init__.py
@@ -119,6 +119,7 @@ class SqlEditorModule(PgAdminModule):
'sqleditor.get_new_connection_data',
'sqleditor.get_new_connection_database',
'sqleditor.get_new_connection_user',
+ 'sqleditor._check_server_connection_status',
'sqleditor.get_new_connection_role',
'sqleditor.connect_server',
'sqleditor.connect_server_with_user',
@@ -1479,6 +1480,49 @@ def get_filter_data(trans_id):
return FilterDialog.get(status, error_msg, conn, trans_obj, session_ob)
[email protected](
+ '/get_server_connection/<int:sgid>/<int:sid>',
+ methods=["GET"], endpoint='_check_server_connection_status'
+)
+@login_required
+def _check_server_connection_status(sgid, sid=None):
+ """
+ This function returns the server connection details
+ """
+ try:
+ driver = get_driver(PG_DEFAULT_DRIVER)
+ from pgadmin.browser.server_groups.servers import \
+ server_icon_and_background
+ server = Server.query.filter_by(
+ id=sid).first()
+
+ manager = driver.connection_manager(server.id)
+ conn = manager.connection()
+ connected = conn.connected()
+
+ msg = "Success"
+ return make_json_response(
+ data={
+ 'status': True,
+ 'msg': msg,
+ 'result': {
+ 'server': connected
+ }
+ }
+ )
+
+ except Exception:
+ return make_json_response(
+ data={
+ 'status': False,
+ 'msg': ERROR_FETCHING_DATA,
+ 'result': {
+ 'server': False
+ }
+ }
+ )
+
+
@blueprint.route(
'/new_connection_dialog/<int:sgid>/<int:sid>',
methods=["GET"], endpoint='get_new_connection_data'
diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
index b87051bf7..b2a964538 100644
--- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
@@ -4809,7 +4809,7 @@ define('tools.querytool', [
else if (!ignore_unsaved_query && self.is_query_tool
&& self.is_query_changed
&& self.preferences.prompt_save_query_changes) {
- msg = gettext('The text has changed. Do you want to save changes?');
+ msg = gettext('The query text has changed. Do you want to save changes?');
self.unsaved_changes_user_confirmation(msg, false);
} // If a transaction is currently ongoing
else if (self.preferences.prompt_commit_transaction
@@ -4938,14 +4938,44 @@ define('tools.querytool', [
break;
case 1: // Don't Save
self.close_on_save = false;
- if(this.is_unsaved_data)
- self.ignore_on_close.unsaved_data = true;
- else
- self.ignore_on_close.unsaved_query = true;
- // Go back to check for any other needed confirmations before closing
- if (!self.check_needed_confirmations_before_closing_panel()){
- closeEvent.cancel = true;
- }
+ $.ajax({
+ url: url_for('sqleditor._check_server_connection_status', {
+ 'sid': self.url_params.sid,
+ 'sgid': self.url_params.sgid,
+ }),
+ headers: {
+ 'Cache-Control' : 'no-cache',
+ },
+ }).done(function (res) {
+ let response = res.data.result.server;
+ if(response){
+ closeEvent.cancel = true;
+ if(this.is_unsaved_data)
+ self.ignore_on_close.unsaved_data = true;
+ else
+ self.ignore_on_close.unsaved_query = true;
+ // Go back to check for any other needed confirmations before closing
+ if (!self.check_needed_confirmations_before_closing_panel()){
+ closeEvent.cancel = true;
+ }
+ }else{
+ alertify.confirm(
+ gettext('Warning'),
+ gettext('The current transaction has been rolled back because the server was disconnected'),
+ function() {
+ // Close the query tool if server is disconnected.
+ setTimeout(() => { self.close(); }, 200);
+ },
+ function() {
+ return true;
+ }
+ ).set('labels', {
+ ok: gettext('Ok')
+ });
+ }
+ }).fail(function() {
+ /* failure should be ignored */
+ });
break;
case 2: //Save
self.close_on_save = true;
^ permalink raw reply [nested|flat] 4+ messages in thread
* Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server.
2021-03-31 14:08 [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Pradip Parkale <[email protected]>
2021-03-31 14:23 ` Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Dave Page <[email protected]>
2021-04-01 06:10 ` Re: [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Pradip Parkale <[email protected]>
@ 2021-04-01 06:44 ` Akshay Joshi <[email protected]>
0 siblings, 0 replies; 4+ messages in thread
From: Akshay Joshi @ 2021-04-01 06:44 UTC (permalink / raw)
To: Pradip Parkale <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers
Thanks, patch applied.
On Thu, Apr 1, 2021 at 11:40 AM Pradip Parkale <
[email protected]> wrote:
> Hi Hackers,
>
> Please find the updated patch with the change mentioned by Dave.
>
> On Wed, Mar 31, 2021 at 7:53 PM Dave Page <[email protected]> wrote:
>
>> Thanks Pradip.
>>
>> Before this is committed, let's change this:
>>
>> gettext('Current trasaction is not commited because server is
>> disconnected.'),
>>
>> to:
>>
>> gettext('The current transaction has been rolled back because the server
>> was disconnected.'),
>>
>> On Wed, Mar 31, 2021 at 3:09 PM Pradip Parkale <
>> [email protected]> wrote:
>>
>>> Hi Hackers,
>>> Please find the attached patch for #5519. Updated the existing
>>> confirmation message and also added a new confirmation dialog before
>>> closing the query tool if the server is disconnected.
>>>
>>> --
>>> Thanks & Regards,
>>> Pradip Parkale
>>> Software Engineer | EnterpriseDB Corporation
>>>
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EDB: http://www.enterprisedb.com
>>
>>
>
> --
> Thanks & Regards,
> Pradip Parkale
> Software Engineer | EnterpriseDB Corporation
>
--
*Thanks & Regards*
*Akshay Joshi*
*pgAdmin Hacker | Principal Software Architect*
*EDB Postgres <http://edbpostgres.com>*
*Mobile: +91 976-788-8246*
^ permalink raw reply [nested|flat] 4+ messages in thread
end of thread, other threads:[~2021-04-01 06:44 UTC | newest]
Thread overview: 4+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31 14:08 [pgAdmin][RM5519]: Unable to close tab after disconnecting server. Pradip Parkale <[email protected]>
2021-03-31 14:23 ` Dave Page <[email protected]>
2021-04-01 06:10 ` Pradip Parkale <[email protected]>
2021-04-01 06:44 ` Akshay Joshi <[email protected]>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox