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 95e58b620..97df5f507 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 @@ -391,10 +391,18 @@ class SynonymView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + # Find parent oid to add properly in tree browser + SQL = render_template("/".join([self.template_path, + 'get_parent_oid.sql']), + data=data, conn=self.conn) + status, parent_id = self.conn.execute_scalar(SQL) + if not status: + return internal_server_error(errormsg=res) + return jsonify( node=self.blueprint.generate_browser_node( data['name'], - scid, + int(parent_id), data['name'], icon="icon-synonym" ) @@ -483,25 +491,14 @@ 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 - } - ) - else: - return make_json_response( - success=1, - info="Nothing to update", - data={ - 'id': syid, - 'scid': scid, - 'did': did - } + return jsonify( + node=self.blueprint.generate_browser_node( + syid, + scid, + syid, + icon="icon-synonym" ) + ) except Exception as e: return internal_server_error(errormsg=str(e)) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js index a3ab4ad09..6e5bcb544 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js @@ -96,13 +96,13 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { select2: { width: "50%", allowClear: false }, options: function(obj) { return [ - {label: "Table", value: "r"}, - {label: "Sequence", value: "S"}, - {label: "View", value: "v"}, - {label: "Function", value: "f"}, - {label: "Procedure", value: "p"}, - {label: "Package", value: "P"}, - {label: "Public Synonym", value: "s"} + {label: "{{ _('Function') }}", value: "f"}, + {label: "{{ _('Package') }}", value: "P"}, + {label: "{{ _('Procedure') }}", value: "p"}, + {label: "{{ _('Public Synonym') }}", value: "s"}, + {label: "{{ _('Sequence') }}", value: "S"}, + {label: "{{ _('Table') }}", value: "r"}, + {label: "{{ _('View') }}", value: "v"} ] }, control: 'select2' diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/get_parent_oid.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/get_parent_oid.sql new file mode 100644 index 000000000..08f07e031 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/get_parent_oid.sql @@ -0,0 +1,5 @@ +SELECT synnamespace as scid + FROM pg_synonym s +WHERE synname = {{ data.name|qtLiteral }} +AND synnamespace IN + ( SELECT oid FROM pg_namespace WHERE nspname = {{ data.schema|qtLiteral }} ); \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/get_parent_oid.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/get_parent_oid.sql new file mode 100644 index 000000000..08f07e031 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/get_parent_oid.sql @@ -0,0 +1,5 @@ +SELECT synnamespace as scid + FROM pg_synonym s +WHERE synname = {{ data.name|qtLiteral }} +AND synnamespace IN + ( SELECT oid FROM pg_namespace WHERE nspname = {{ data.schema|qtLiteral }} ); \ No newline at end of file