From ebf5e871e084a848774eee09bf072d103bd04b97 Mon Sep 17 00:00:00 2001 From: Nikhil Mohite Date: Thu, 12 Nov 2020 17:59:13 +0530 Subject: [PATCH] Fixed an issue where the debugger's custom tab title not applied when opened in the new browser tab. Fixes #5974 --- docs/en_US/release_notes_4_29.rst | 1 + .../static/js/datagrid_panel_title.js | 2 +- .../tools/datagrid/static/js/show_data.js | 2 +- web/pgadmin/tools/debugger/__init__.py | 23 +++++++++++++++++++ .../debugger/static/js/debugger_utils.js | 2 +- .../debugger/templates/debugger/direct.html | 2 +- 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/docs/en_US/release_notes_4_29.rst b/docs/en_US/release_notes_4_29.rst index 9f636f4e9..a4bee21b8 100644 --- a/docs/en_US/release_notes_4_29.rst +++ b/docs/en_US/release_notes_4_29.rst @@ -17,5 +17,6 @@ Housekeeping Bug fixes ********* +| `Issue #5974 `_ - Fixed an issue where the debugger's custom tab title not applied when opened in the new browser tab. | `Issue #5983 `_ - Added the appropriate server icon based on the server type in the new connection dialog. | `Issue #5985 `_ - Fixed an issue where the process watcher dialog throws an error for the database server which is already removed. diff --git a/web/pgadmin/tools/datagrid/static/js/datagrid_panel_title.js b/web/pgadmin/tools/datagrid/static/js/datagrid_panel_title.js index d468c8329..258e83dd1 100644 --- a/web/pgadmin/tools/datagrid/static/js/datagrid_panel_title.js +++ b/web/pgadmin/tools/datagrid/static/js/datagrid_panel_title.js @@ -47,7 +47,7 @@ export function getPanelTitle(pgBrowser, selected_item=null, custom_title=null) }; var title = generateTitle(qt_title_placeholder, title_data); - return _.escape(title); + return title; } export function setQueryToolDockerTitle(panel, is_query_tool, panel_title, is_file) { diff --git a/web/pgadmin/tools/datagrid/static/js/show_data.js b/web/pgadmin/tools/datagrid/static/js/show_data.js index 959fae034..28ca801a7 100644 --- a/web/pgadmin/tools/datagrid/static/js/show_data.js +++ b/web/pgadmin/tools/datagrid/static/js/show_data.js @@ -308,5 +308,5 @@ export function generateDatagridTitle(pgBrowser, aciTreeIdentifier, custom_title }; var title = generateTitle(dtg_title_placeholder, title_data); - return _.escape(title); + return title; } diff --git a/web/pgadmin/tools/debugger/__init__.py b/web/pgadmin/tools/debugger/__init__.py index 8e2720fac..5974bc995 100644 --- a/web/pgadmin/tools/debugger/__init__.py +++ b/web/pgadmin/tools/debugger/__init__.py @@ -35,6 +35,7 @@ from pgadmin.browser.server_groups.servers.databases.extensions.utils \ import get_extension_details from pgadmin.utils.constants import PREF_LABEL_DISPLAY, \ PREF_LABEL_KEYBOARD_SHORTCUTS, MIMETYPE_APP_JS, SERVER_CONNECTION_CLOSED +from pgadmin.preferences import preferences MODULE_NAME = 'debugger' @@ -664,10 +665,19 @@ def direct_new(trans_id): function_name_with_arguments = \ de_inst.debugger_data['function_name'] + function_arguments + manager = get_driver(PG_DEFAULT_DRIVER).get_connection( + de_inst.debugger_data['server_id'], + database=de_inst.debugger_data['database_id'], + conn_id=de_inst.debugger_data['conn_id']) + title = get_debugger_title(de_inst.debugger_data['function_name'], + function_arguments, + de_inst.function_data['schema'], manager.db) + return render_template( "debugger/direct.html", _=gettext, function_name=de_inst.debugger_data['function_name'], + title=title, uniqueId=trans_id, debug_type=debug_type, is_desktop_mode=current_app.PGADMIN_RUNTIME, @@ -678,6 +688,19 @@ def direct_new(trans_id): ) +def get_debugger_title(function_name, args, schema, database): + browser_pref = preferences('browser', 'debugger_tab_title_placeholder') + placeholders = browser_pref.json['value'] + title = placeholders.replace('%FUNCTION%', function_name) + if title.find('%ARGS%') != -1: + args = args.split('(')[-1][:-1] + title = title.replace('%ARGS%', args) + title = title.replace('%SCHEMA%', schema) + title = title.replace('%DATABASE%', database) + + return title + + def get_debugger_version(conn, search_path): """ Function returns the debugger version. diff --git a/web/pgadmin/tools/debugger/static/js/debugger_utils.js b/web/pgadmin/tools/debugger/static/js/debugger_utils.js index f835f1883..e627c2008 100644 --- a/web/pgadmin/tools/debugger/static/js/debugger_utils.js +++ b/web/pgadmin/tools/debugger/static/js/debugger_utils.js @@ -68,7 +68,7 @@ function setDebuggerTitle(panel, preferences, function_name, schema_name, databa 'type': 'debugger', }; var title = generateTitle(debugger_title_placeholder, title_data); - panel.title(''+ _.escape(title) +''); + panel.title(''+ title +''); } function get_function_name(function_name) { diff --git a/web/pgadmin/tools/debugger/templates/debugger/direct.html b/web/pgadmin/tools/debugger/templates/debugger/direct.html index bcdc80f38..a73f79b32 100644 --- a/web/pgadmin/tools/debugger/templates/debugger/direct.html +++ b/web/pgadmin/tools/debugger/templates/debugger/direct.html @@ -1,5 +1,5 @@ {% extends "base.html" %} -{% block title %}{{ _('Debugger - ') + function_name }}{% endblock %} +{% block title %}{{ _('Debugger - ') + title }}{% endblock %} {% block init_script %} try {