From 08ff9d7422aef7e1bdd46c5d71f5965ee5e36ab4 Mon Sep 17 00:00:00 2001 From: Murtuza Zabuawala Date: Fri, 31 Mar 2017 16:08:05 +0530 Subject: [PATCH] Dialog Help was broken in case where query tool/Debugger opens in new browser tab. Fixes #2310 --- .../browser/templates/browser/js/browser.js | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/web/pgadmin/browser/templates/browser/js/browser.js b/web/pgadmin/browser/templates/browser/js/browser.js index d2e5dd7c3..85071873a 100644 --- a/web/pgadmin/browser/templates/browser/js/browser.js +++ b/web/pgadmin/browser/templates/browser/js/browser.js @@ -705,20 +705,27 @@ function(require, $, _, S, Bootstrap, pgAdmin, Alertify, CodeMirror) { pnlSqlHelp.focus(); iframe.openURL(fullUrl); } else if(type == "dialog_help") { - // See if we can find an existing panel, if not, create one - pnlDialogHelp = this.docker.findPanels('pnl_online_help')[0]; - - if (pnlDialogHelp == null) { - pnlProperties = this.docker.findPanels('properties')[0]; - this.docker.addPanel('pnl_online_help', wcDocker.DOCK.STACKED, pnlProperties); + if(this.docker) { + // See if we can find an existing panel, if not, create one pnlDialogHelp = this.docker.findPanels('pnl_online_help')[0]; + + if (pnlDialogHelp == null) { + pnlProperties = this.docker.findPanels('properties')[0]; + this.docker.addPanel('pnl_online_help', wcDocker.DOCK.STACKED, pnlProperties); + pnlDialogHelp = this.docker.findPanels('pnl_online_help')[0]; + } + + // Update the panel + iframe = $(pnlDialogHelp).data('embeddedFrame'); + + pnlDialogHelp.focus(); + iframe.openURL(url); + } else { + // We have added new functionality of opening Query tool & debugger in new + // browser tab, In that case we will not have docker object available + // so we will open dialog help in new browser tab + window.open(url, '_blank'); } - - // Update the panel - iframe = $(pnlDialogHelp).data('embeddedFrame'); - - pnlDialogHelp.focus(); - iframe.openURL(url); } },