Fixed an issue where clicking on the 'Generate script' button shows a forever spinner due to pop up blocker. Fixes #5815

This commit is contained in:
Aditya Toshniwal authored and Akshay Joshi committed 2020-09-09 20:10:56 +05:30
1 parent 62e6848dc8
commit d0310b669e
4 files changed
+26 -17

No files matched your search

@@ -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);
@@ -64,19 +64,10 @@ export function showQueryTool(datagrid, pgBrowser, alertify, url, aciTreeIdentif
}
const gridUrl = generateUrl(transId, queryToolTitle, parentData);
let retVal = datagrid.launch_grid(transId, gridUrl, true, queryToolTitle, sURL);
if(!retVal) {
alertify.alert(
gettext('Query tool launch error'),
gettext(
'Please allow the pop-ups for this site to perform the desired action. If the main window of pgAdmin is closed then close this window and open a new pgAdmin session.'
)
);
}
launchDataGrid(datagrid, transId, gridUrl, queryToolTitle, sURL, alertify);
}
export function generateScript(parentData, datagrid) {
export function generateScript(parentData, datagrid, alertify) {
const queryToolTitle = `${parentData.database}/${parentData.user}@${parentData.server}`;
const transId = getRandomInt(1, 9999999);
@@ -90,6 +81,18 @@ export function generateScript(parentData, datagrid) {
+`&server_type=${parentData.stype}`
+`&did=${parentData.did}`;
datagrid.launch_grid(transId, url_endpoint, true, queryToolTitle, '');
launchDataGrid(datagrid, transId, url_endpoint, queryToolTitle, '', alertify);
}
export function launchDataGrid(datagrid, transId, gridUrl, queryToolTitle, sURL, alertify) {
let retVal = datagrid.launch_grid(transId, gridUrl, true, queryToolTitle, sURL);
if(!retVal) {
alertify.alert(
gettext('Query tool launch error'),
gettext(
'Please allow the pop-ups for this site to perform the desired action. If the main window of pgAdmin is closed then close this window and open a new pgAdmin session.'
)
);
}
}
@@ -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)...');
}