From 2324337149f4e86cae462248c5c058ca52fa898e Mon Sep 17 00:00:00 2001 From: Khushboo Vashi Date: Fri, 26 Apr 2024 11:59:53 +0530 Subject: [PATCH] =?UTF-8?q?Trigger=20the=20browser=20tree=20destroyed=20ev?= =?UTF-8?q?ent=C2=A0so=20the=20consequences=20of=20destroying=20the=20tree?= =?UTF-8?q?=20are=20handled=C2=A0properly.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../static/js/components/PreferencesComponent.jsx | 9 +++++---- web/pgadmin/static/js/helpers/withStandardTabInfo.jsx | 2 ++ web/pgadmin/static/js/tree/tree.js | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx b/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx index 7c9e280fa..6fd62671c 100644 --- a/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx +++ b/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx @@ -555,11 +555,12 @@ export default function PreferencesComponent({ ...props }) { gettext('Object explorer refresh required'), gettext('An object explorer refresh is required. Do you wish to refresh it now?'), function () { - pgAdmin.Browser.tree.destroy({ - success: function () { + pgAdmin.Browser.tree.destroy().then( + () => { + pgAdmin.Browser.Events.trigger('pgadmin-browser:tree:destroyed', undefined, undefined); return true; - }, - }); + } + ); }, function () { return true; diff --git a/web/pgadmin/static/js/helpers/withStandardTabInfo.jsx b/web/pgadmin/static/js/helpers/withStandardTabInfo.jsx index 07cd1f1f1..e713c76bc 100644 --- a/web/pgadmin/static/js/helpers/withStandardTabInfo.jsx +++ b/web/pgadmin/static/js/helpers/withStandardTabInfo.jsx @@ -42,6 +42,7 @@ export default function withStandardTabInfo(Component, tabId) { setNodeInfo([true, item, data]); }; + let destroyTree = pgAdmin.Browser.Events.on('pgadmin-browser:tree:destroyed', onUpdate); let deregisterTree = pgAdmin.Browser.Events.on('pgadmin-browser:node:selected', onUpdate); let deregisterTreeUpdate = pgAdmin.Browser.Events.on('pgadmin-browser:tree:updated', onUpdate); let deregisterDbConnected = pgAdmin.Browser.Events.on('pgadmin:database:connected', onUpdate); @@ -54,6 +55,7 @@ export default function withStandardTabInfo(Component, tabId) { return ()=>{ onTabActive?.cancel(); + destroyTree(); deregisterTree(); deregisterTreeUpdate(); deregisterDbConnected(); diff --git a/web/pgadmin/static/js/tree/tree.js b/web/pgadmin/static/js/tree/tree.js index eb940639b..fc6653899 100644 --- a/web/pgadmin/static/js/tree/tree.js +++ b/web/pgadmin/static/js/tree/tree.js @@ -120,7 +120,7 @@ export class Tree { this.rootNode.children = []; if (model.root) { model.root.isExpanded = false; - await model.root.hardReloadChildren(); + return Promise.resolve(await model.root.hardReloadChildren()); } }