mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Ensure that the submenus under the trigger's context menu are enabled/disabled correctly. #5627
This commit is contained in:
parent
acc26744e3
commit
64af035ce9
@ -1186,6 +1186,17 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
SQL = render_template(
|
||||
"/".join([
|
||||
self.trigger_template_path, 'get_enabled_triggers.sql'
|
||||
]),
|
||||
tid=tid
|
||||
)
|
||||
|
||||
status, trigger_res = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
return make_json_response(
|
||||
success=1,
|
||||
info=gettext("Trigger(s) have been disabled")
|
||||
@ -1193,7 +1204,8 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
else gettext("Trigger(s) have been enabled"),
|
||||
data={
|
||||
'id': tid,
|
||||
'scid': scid
|
||||
'scid': scid,
|
||||
'has_enable_triggers': trigger_res
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -29,7 +29,9 @@ function setTriggers(tree, Notify, generateUrl, args, params) {
|
||||
.then((res) => {
|
||||
if (res.data.success === 1) {
|
||||
Notify.success(res.data.info);
|
||||
treeNode.data.has_enable_triggers = res.data.data.has_enable_triggers;
|
||||
treeNode.reload(tree);
|
||||
|
||||
}
|
||||
})
|
||||
.catch((xhr) => {
|
||||
|
@ -306,18 +306,17 @@ define('pgadmin.node.table', [
|
||||
return getNodeTableSchema(treeNodeInfo, itemNodeData, pgBrowser);
|
||||
},
|
||||
// Check to whether table has disable trigger(s)
|
||||
canCreate_with_trigger_enable: function(itemData, item, data) {
|
||||
return itemData.tigger_count > 0 &&
|
||||
this.canCreate.apply(this, [itemData, item, data]);
|
||||
canCreate_with_trigger_enable: function(itemData) {
|
||||
return itemData.tigger_count > 0 && (itemData.has_enable_triggers == 0 || itemData.has_enable_triggers < itemData.tigger_count);
|
||||
},
|
||||
// Check to whether table has enable trigger(s)
|
||||
canCreate_with_trigger_disable: function(itemData, item, data) {
|
||||
return itemData.tigger_count > 0 && itemData.has_enable_triggers > 0 &&
|
||||
this.canCreate.apply(this, [itemData, item, data]);
|
||||
canCreate_with_trigger_disable: function(itemData) {
|
||||
return itemData.tigger_count > 0 && itemData.has_enable_triggers > 0;
|
||||
},
|
||||
onTableUpdated: function(_node, _oldNodeData, _newNodeData) {
|
||||
let key, childIDs;
|
||||
if (
|
||||
|
||||
_newNodeData.is_partitioned &&
|
||||
'affected_partitions' in _newNodeData
|
||||
) {
|
||||
|
@ -0,0 +1 @@
|
||||
SELECT count(*) FROM pg_catalog.pg_trigger WHERE tgrelid={{tid}} AND tgisinternal = FALSE AND tgenabled = 'O'
|
@ -0,0 +1 @@
|
||||
SELECT count(*) FROM pg_catalog.pg_trigger WHERE tgrelid={{tid}} AND tgisinternal = FALSE AND tgenabled = 'O'
|
@ -932,6 +932,17 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
data=o_data, conn=self.conn)
|
||||
status, res = self.conn.execute_scalar(SQL)
|
||||
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
SQL = render_template(
|
||||
"/".join([
|
||||
self.template_path, 'get_enabled_triggers.sql'
|
||||
]),
|
||||
tid=tid
|
||||
)
|
||||
|
||||
status, trigger_res = self.conn.execute_scalar(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
|
||||
@ -941,7 +952,8 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
data={
|
||||
'id': trid,
|
||||
'tid': tid,
|
||||
'scid': scid
|
||||
'scid': scid,
|
||||
'has_enable_triggers': trigger_res
|
||||
}
|
||||
)
|
||||
except Exception as e:
|
||||
|
@ -123,6 +123,7 @@ define('pgadmin.node.trigger', [
|
||||
t.unload(i);
|
||||
t.setInode(false);
|
||||
t.deselect(i);
|
||||
i.parent.parent._metadata.data.has_enable_triggers = res.data.has_enable_triggers;
|
||||
// Fetch updated data from server
|
||||
setTimeout(function() {
|
||||
t.select(i);
|
||||
@ -161,6 +162,7 @@ define('pgadmin.node.trigger', [
|
||||
t.unload(i);
|
||||
t.setInode(false);
|
||||
t.deselect(i);
|
||||
i.parent.parent._metadata.data.has_enable_triggers = res.data.has_enable_triggers;
|
||||
// Fetch updated data from server
|
||||
setTimeout(function() {
|
||||
t.select(i);
|
||||
|
Loading…
Reference in New Issue
Block a user