diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py index 95e58b6..2d2e40f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py @@ -483,14 +483,23 @@ class SynonymView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) - return make_json_response( - success=1, - info="Synonym updated", - data={ - 'id': syid, - 'scid': scid, - 'did': did - } + SQL = render_template( + "/".join([self.template_path, 'nodes.sql']), + scid=scid + ) + + status, rset = self.conn.execute_2darray(SQL) + if not status: + return internal_server_error(errormsg=rset) + row = rset['rows'][0] + + return jsonify( + node=self.blueprint.generate_browser_node( + syid, + row['schema'], + row['name'], + icon="icon-%s" % self.node_type + ) ) else: return make_json_response( diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/nodes.sql index 1f8259b..42caf40 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/nodes.sql @@ -1,4 +1,4 @@ -SELECT synname as name +SELECT synname as name, synnamespace as schema FROM pg_synonym s JOIN pg_namespace ns ON s.synnamespace = ns.oid AND s.synnamespace = {{scid}}::oid diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/nodes.sql index 1f8259b..42caf40 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/nodes.sql @@ -1,4 +1,4 @@ -SELECT synname as name +SELECT synname as name, synnamespace as schema FROM pg_synonym s JOIN pg_namespace ns ON s.synnamespace = ns.oid AND s.synnamespace = {{scid}}::oid diff --git a/web/pgadmin/browser/templates/browser/js/browser.js b/web/pgadmin/browser/templates/browser/js/browser.js index 46c49cf..3652ec5 100644 --- a/web/pgadmin/browser/templates/browser/js/browser.js +++ b/web/pgadmin/browser/templates/browser/js/browser.js @@ -1148,7 +1148,8 @@ function(require, $, _, S, Bootstrap, pgAdmin, Alertify, CodeMirror) { if ( this.i && this.d && this.new._type == this.d._type ) { - var _id = this.d._id; + var self = this, + _id = this.d._id; if (this.new._id != this.d._id) { // Found the new oid, update its node_id var node_data = this.t.itemData(ctx.i); @@ -1162,7 +1163,10 @@ function(require, $, _, S, Bootstrap, pgAdmin, Alertify, CodeMirror) { this.t.setId(ctx.id, {id: this.new.id}); this.t.openPath(this.i); this.t.deselect(this.i); - this.t.select(this.i); + // select tree item after few milliseconds + setTimeout(function() { + self.t.select(self.i); + }, 10); } } var success = this.o && this.o.success;