diff --git a/web/pgadmin/tools/datagrid/static/js/datagrid.js b/web/pgadmin/tools/datagrid/static/js/datagrid.js index 640b325c4..bb4d333ca 100644 --- a/web/pgadmin/tools/datagrid/static/js/datagrid.js +++ b/web/pgadmin/tools/datagrid/static/js/datagrid.js @@ -234,8 +234,12 @@ define('pgadmin.datagrid', [ if (self.preferences.new_browser_tab) { var newWin = window.open('', '_blank'); - newWin.document.write(queryToolForm); - newWin.document.title = panel_title; + if(newWin) { + newWin.document.write(queryToolForm); + newWin.document.title = panel_title; + } else { + return false; + } } else { /* On successfully initialization find the dashboard panel, * create new panel and add it to the dashboard panel. @@ -283,6 +287,7 @@ define('pgadmin.datagrid', [ openQueryToolURL(queryToolPanel); } + return true; }, }, Backbone.Events); diff --git a/web/pgadmin/tools/datagrid/static/js/show_query_tool.js b/web/pgadmin/tools/datagrid/static/js/show_query_tool.js index 782bf78e3..0f3636e65 100644 --- a/web/pgadmin/tools/datagrid/static/js/show_query_tool.js +++ b/web/pgadmin/tools/datagrid/static/js/show_query_tool.js @@ -68,7 +68,7 @@ export function showQueryTool(datagrid, pgBrowser, alertify, url, aciTreeIdentif datagrid.launch_grid(transId, gridUrl, true, queryToolTitle, sURL); } -export function generateScript(parentData, datagrid) { +export function generateScript(parentData, datagrid, alertify) { const queryToolTitle = `${parentData.database}/${parentData.user}@${parentData.server}`; const transId = getRandomInt(1, 9999999); @@ -82,6 +82,13 @@ export function generateScript(parentData, datagrid) { +`&server_type=${parentData.stype}` +`&did=${parentData.did}`; - datagrid.launch_grid(transId, url_endpoint, true, queryToolTitle, ''); - + let retVal = datagrid.launch_grid(transId, url_endpoint, true, queryToolTitle, ''); + if(!retVal) { + alertify.alert( + gettext('Query tool launch error'), + gettext( + 'Please allow the pop ups if they are blocked for pgAdmin. If the pgAdmin window is closed then close this window and open a new pgAdmin session.' + ) + ); + } } diff --git a/web/pgadmin/tools/schema_diff/static/js/schema_diff_ui.js b/web/pgadmin/tools/schema_diff/static/js/schema_diff_ui.js index 228271518..2e037e47d 100644 --- a/web/pgadmin/tools/schema_diff/static/js/schema_diff_ui.js +++ b/web/pgadmin/tools/schema_diff/static/js/schema_diff_ui.js @@ -239,7 +239,7 @@ export default class SchemaDiffUI { } pgWindow.pgAdmin.ddl_diff = generated_script; - generateScript(server_data, pgWindow.pgAdmin.DataGrid); + generateScript(server_data, pgWindow.pgAdmin.DataGrid, Alertify); } $('#diff_fetching_data').find('.schema-diff-busy-text').text(''); @@ -485,7 +485,7 @@ export default class SchemaDiffUI { contentType: 'application/json', }) .done(function (res) { - let msg = res.data.compare_msg; + let msg = _.escape(res.data.compare_msg); if (res.data.diff_percentage != 100) { msg = msg + gettext(' (this may take a few minutes)...'); }