From 2320370fd23029c7cd535a200691f2c73848815e Mon Sep 17 00:00:00 2001 From: Nikhil Mohite Date: Mon, 27 Sep 2021 11:31:52 +0530 Subject: [PATCH] =?UTF-8?q?1)=20Fixed=20an=20issue=20where=20for=20constra?= =?UTF-8?q?int=20trigger=20only=20After=20event=20should=20be=20displayed,?= =?UTF-8?q?=20=20=20=20also=20fixed=20the=20Incorrect=20values=20for=20Con?= =?UTF-8?q?straint=20trigger,=20Deferrable,=20Deferred.=20Fixes=20#6803=20?= =?UTF-8?q?2)=20Fixed=20an=20issue=C2=A0where=20the=20user=20was=20unable?= =?UTF-8?q?=20to=20create=20the=20trigger=20for=20views.=20Fixes=20#6804?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tables/triggers/static/js/trigger.ui.js | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger.ui.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger.ui.js index f5e9565f9..61e6c4a14 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger.ui.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger.ui.js @@ -224,7 +224,8 @@ export default class TriggerSchema extends BaseUISchema { if (!obj.isNew()) return true; - if (obj.nodeInfo.table.is_partitioned && obj.nodeInfo.server.version < 110000) + if (( _.has(obj.nodeInfo, 'table') && _.has(obj.nodeInfo.table, 'is_partitioned') && + obj.nodeInfo.table.is_partitioned) && obj.nodeInfo?.server.version < 110000) { state.is_row_trigger = false; return true; @@ -258,7 +259,7 @@ export default class TriggerSchema extends BaseUISchema { mode: ['create','edit', 'properties'], group: gettext('Definition'), deps: ['tfunction'], - disabled: (state) => { + readonly: (state) => { // Disabled if table is a partitioned table. var tfunction = state.tfunction; if (( _.has(obj.nodeInfo, 'table') && _.has(obj.nodeInfo.table, 'is_partitioned') && @@ -270,12 +271,18 @@ export default class TriggerSchema extends BaseUISchema { } return obj.inSchemaWithModelCheck(state); }, + disabled: () => { + if('view' in obj.nodeInfo) { + return true; + } + return false; + } },{ id: 'tgdeferrable', label: gettext('Deferrable?'), type: 'switch', group: gettext('Definition'), mode: ['create','edit', 'properties'], deps: ['is_constraint_trigger'], - disabled: (state) => { + readonly: (state) => { // If constraint trigger is set to True then only enable it var is_constraint_trigger = state.is_constraint_trigger; if(!obj.inSchemaWithModelCheck(state)) { @@ -290,16 +297,22 @@ export default class TriggerSchema extends BaseUISchema { return true; } } else { - // Disable it + // readonly it return true; } }, + disabled: (state) => { + if(!state.is_constraint_trigger) { + return true; + } + return false; + } },{ id: 'tginitdeferred', label: gettext('Deferred?'), type: 'switch', group: gettext('Definition'), mode: ['create','edit', 'properties'], deps: ['tgdeferrable', 'is_constraint_trigger'], - disabled: (state) => { + readonly: (state) => { // If Deferrable is set to True then only enable it var tgdeferrable = state.tgdeferrable; if(!obj.inSchemaWithModelCheck(state)) { @@ -314,10 +327,16 @@ export default class TriggerSchema extends BaseUISchema { return state.is_constraint_trigger ? false : true; } } else { - // Disable it + // readonly it return true; } }, + disabled: (state) => { + if(!state.is_constraint_trigger) { + return true; + } + return false; + } },{ id: 'tfunction', label: gettext('Trigger function'), type: 'select', disabled: obj.inSchemaWithModelCheck, @@ -368,11 +387,11 @@ export default class TriggerSchema extends BaseUISchema { } }, type: 'select', controlProps: { allowClear: false }, - disabled: (state) => { + readonly: (state) => { if (!obj.isNew()) return true; // If contraint trigger is set to True then only enable it - var is_constraint_trigger = obj.is_constraint_trigger; + var is_constraint_trigger = state.is_constraint_trigger; if(!obj.inSchemaWithModelCheck(state)) { if(!_.isUndefined(is_constraint_trigger) && is_constraint_trigger === true) { @@ -406,7 +425,7 @@ export default class TriggerSchema extends BaseUISchema { type: 'select', controlProps: { multiple: true }, deps: ['evnt_update'], group: gettext('Events'), options: obj.fieldOptions.columns, - disabled: (state) => { + readonly: (state) => { if(obj.nodeInfo && 'catalog' in obj.nodeInfo) { return true; }