Resolve issue with properties refreshing. Fixes #1728
1) If we create/update a node with non-default schema, It should return selected schema id in return response. but default schema id is returned every time due to which it throws error in properties panel. Fixed in Domains, Collation, Types, Views & Table node. 2) Incorrect parent id of object node is returned from nodes method due to which wrong parent id is passed while updating object and thus node didn't get refreshed. Fixed in FTS Configuration, FTS Parser nodes.pull/3/head
parent
404d4efd2e
commit
0df968f679
|
@ -443,6 +443,13 @@ class CollationView(PGChildNodeView):
|
|||
if not status:
|
||||
return internal_server_error(errormsg=coid)
|
||||
|
||||
# Get updated schema oid
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
'get_oid.sql']), coid=coid)
|
||||
status, scid = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=coid)
|
||||
|
||||
return jsonify(
|
||||
node=self.blueprint.generate_browser_node(
|
||||
coid,
|
||||
|
|
|
@ -546,6 +546,14 @@ AND relkind != 'c'))"""
|
|||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
# Get updated schema oid
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
'get_oid.sql']),
|
||||
doid=doid)
|
||||
status, scid = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
return jsonify(
|
||||
node=self.blueprint.generate_browser_node(
|
||||
doid,
|
||||
|
@ -640,12 +648,10 @@ AND relkind != 'c'))"""
|
|||
SQL = render_template("/".join([self.template_path,
|
||||
'get_oid.sql']),
|
||||
doid=doid)
|
||||
status, res = self.conn.execute_2darray(SQL)
|
||||
status, scid = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
scid = res['rows'][0]['scid']
|
||||
|
||||
return jsonify(
|
||||
node=self.blueprint.generate_browser_node(
|
||||
doid,
|
||||
|
|
|
@ -286,7 +286,7 @@ class FtsConfigurationView(PGChildNodeView):
|
|||
res.append(
|
||||
self.blueprint.generate_browser_node(
|
||||
row['oid'],
|
||||
did,
|
||||
scid,
|
||||
row['name'],
|
||||
icon="icon-fts_configuration"
|
||||
))
|
||||
|
|
|
@ -256,7 +256,7 @@ class FtsParserView(PGChildNodeView):
|
|||
res.append(
|
||||
self.blueprint.generate_browser_node(
|
||||
row['oid'],
|
||||
did,
|
||||
scid,
|
||||
row['name'],
|
||||
icon="icon-fts_parser"
|
||||
))
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{# ===== fetch new assigned schema id ===== #}
|
||||
SELECT
|
||||
c.relnamespace as scid
|
||||
FROM
|
||||
pg_class c
|
||||
WHERE
|
||||
c.oid = {{syid|qtLiteral}}::oid;
|
|
@ -1442,9 +1442,17 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
# Get updated schema oid
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
'get_schema_oid.sql']), tname=data['name'])
|
||||
|
||||
status, scid = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=scid)
|
||||
|
||||
# we need oid to to add object in tree at browser
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
'get_oid.sql']), scid=scid, data=data)
|
||||
'get_oid.sql']), scid=scid, data=data)
|
||||
status, tid = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=tid)
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{# ===== fetch new assigned schema oid ===== #}
|
||||
{% if tid %}
|
||||
SELECT
|
||||
c.relnamespace as scid
|
||||
FROM
|
||||
pg_class c
|
||||
WHERE
|
||||
{% if tid %}
|
||||
c.oid = {{tid}}::oid;
|
||||
{% else %}
|
||||
c.relname = {{tname|qtLiteral}}::text;
|
||||
{% endif %}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{# ===== fetch new assigned schema oid ===== #}
|
||||
{% if tid %}
|
||||
SELECT
|
||||
c.relnamespace as scid
|
||||
FROM
|
||||
pg_class c
|
||||
WHERE
|
||||
{% if tid %}
|
||||
c.oid = {{tid}}::oid;
|
||||
{% else %}
|
||||
c.relname = {{tname|qtLiteral}}::text;
|
||||
{% endif %}
|
||||
|
|
|
@ -902,10 +902,17 @@ class TypeView(PGChildNodeView, DataTypeReader):
|
|||
try:
|
||||
SQL = render_template("/".join([self.template_path, 'create.sql']),
|
||||
data=data, conn=self.conn)
|
||||
status, res = self.conn.execute_scalar(SQL)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
# we need scid to update in browser tree
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
'get_scid.sql']), tname=data['name'])
|
||||
status, scid = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=scid)
|
||||
|
||||
# we need oid to to add object in tree at browser
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
'get_oid.sql']),
|
||||
|
@ -948,6 +955,14 @@ class TypeView(PGChildNodeView, DataTypeReader):
|
|||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
'get_scid.sql']), tname=data['name'])
|
||||
|
||||
# Get updated schema oid
|
||||
status, scid = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
return jsonify(
|
||||
node=self.blueprint.generate_browser_node(
|
||||
tid,
|
||||
|
|
|
@ -8,4 +8,4 @@ WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%' AND t.typnamespace = {{sci
|
|||
{% if data %}
|
||||
AND t.typname = {{data.name|qtLiteral}}
|
||||
{% endif %}
|
||||
ORDER BY t.typname;
|
||||
ORDER BY t.typname;
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
SELECT
|
||||
t.typnamespace as scid
|
||||
FROM
|
||||
pg_type t
|
||||
WHERE
|
||||
t.typname = {{tname|qtLiteral}}::text;
|
|
@ -487,12 +487,24 @@ class ViewNode(PGChildNodeView, VacuumSettings):
|
|||
SQL = render_template("/".join(
|
||||
[self.template_path, 'sql/view_id.sql']), data=data)
|
||||
status, view_id = self.conn.execute_scalar(SQL)
|
||||
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
# Get updated schema oid
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, 'sql/get_oid.sql']), vid=view_id)
|
||||
status, scid = self.conn.execute_scalar(SQL)
|
||||
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
return jsonify(
|
||||
node=self.blueprint.generate_browser_node(
|
||||
view_id,
|
||||
scid,
|
||||
data['name'],
|
||||
icon="icon-%s" % self.node_type
|
||||
icon="icon-view"
|
||||
)
|
||||
)
|
||||
except Exception as e:
|
||||
|
@ -525,15 +537,13 @@ class ViewNode(PGChildNodeView, VacuumSettings):
|
|||
view_id = res_data['rows'][0]['oid']
|
||||
new_view_name = res_data['rows'][0]['relname']
|
||||
|
||||
# Get updated schema oid
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, 'sql/get_oid.sql']), vid=view_id)
|
||||
status, res = self.conn.execute_2darray(SQL)
|
||||
status, scid = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
# new schema id
|
||||
scid = res['rows'][0]['scid']
|
||||
|
||||
return jsonify(
|
||||
node=self.blueprint.generate_browser_node(
|
||||
view_id,
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue