diff --git a/web/pgadmin/browser/static/js/browser.js b/web/pgadmin/browser/static/js/browser.js index ac7222ea6..c2ad41d66 100644 --- a/web/pgadmin/browser/static/js/browser.js +++ b/web/pgadmin/browser/static/js/browser.js @@ -1274,7 +1274,14 @@ define('pgadmin.browser', [ // If there is no parent then just update the node if(this.t.isRootNode(_parent) || (_parent && _parent.length == 0 && ctx.op == 'UPDATE')) { - updateNode(); + var that = this; + this.t.remove(this.i).then(() => { + that.t.before(that.i, that.new).then((new_item) => { + that.t.select(new_item); + }, () => { + console.warn('Failed to add before..', arguments); + }); + }); } else { var postRemove = function() { // If item has parent but no grand parent diff --git a/web/pgadmin/static/js/tree/pgadmin_tree_save_state.js b/web/pgadmin/static/js/tree/pgadmin_tree_save_state.js index 950d00528..0c8119492 100644 --- a/web/pgadmin/static/js/tree/pgadmin_tree_save_state.js +++ b/web/pgadmin/static/js/tree/pgadmin_tree_save_state.js @@ -302,7 +302,7 @@ _.extend(pgBrowser.browserTreeState, { let index = tmpItemData.indexOf(data.id); pgBrowser.tree.open(item); - + pgBrowser.tree.ensureLoaded(item); if (index == (tmpItemData.length - 1 )) { let tIndex = treeData[treeHierarchy[self.parent]['_id']]['paths'].indexOf(tData); treeData[treeHierarchy[self.parent]['_id']]['paths'].splice(tIndex, 1); @@ -364,7 +364,6 @@ _.extend(pgBrowser.browserTreeState, { if (!_.isUndefined(databaseItem)) this.current_state[topParent]['selected'][databaseItem] = selectedItem; } - }, select_tree_item(item) { let treeData = this.stored_state || {}, @@ -373,12 +372,12 @@ _.extend(pgBrowser.browserTreeState, { tmpTreeData = treeData[treeHierarchy[this.parent]['_id']]; - if (treeHierarchy.hasOwnProperty('database')) { - let databaseItem = treeHierarchy['database']['id']; + if (treeHierarchy.hasOwnProperty('server')) { + let selectedItem = treeHierarchy['server']['id']; - if (tmpTreeData && 'selected' in tmpTreeData && databaseItem in tmpTreeData['selected']) { - if (tmpTreeData['selected'][databaseItem] == data.id) { - pgBrowser.tree.select(item); + if (tmpTreeData && 'selected' in tmpTreeData && selectedItem in tmpTreeData['selected']) { + if (tmpTreeData['selected'][selectedItem] == data.id) { + pgBrowser.tree.select(item, true, 'center'); } } } diff --git a/web/pgadmin/static/js/tree/tree.js b/web/pgadmin/static/js/tree/tree.js index 42c8b1298..c527ffc87 100644 --- a/web/pgadmin/static/js/tree/tree.js +++ b/web/pgadmin/static/js/tree/tree.js @@ -123,6 +123,10 @@ export class Tree { await this.tree.toggleDirectory(item); } + async ensureLoaded(item) { + await item.ensureLoaded(); + } + async ensureVisible(item){ await this.tree.ensureVisible(item); }