From 49dfd6fe314109c065dab6e477abc867c6e04ab2 Mon Sep 17 00:00:00 2001 From: Khushboo Vashi Date: Wed, 3 Jan 2018 14:32:00 +0000 Subject: [PATCH] Ensure invalid options can't be selected on triggers on views. Fixes #2945 --- .../templates/trigger/sql/default/properties.sql | 2 +- .../schemas/tables/triggers/static/js/trigger.js | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/properties.sql index 76f0a252b..8b3ddc178 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/properties.sql @@ -7,7 +7,7 @@ SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THE {% if datlastsysoid %} (CASE WHEN t.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_trigger, {% endif %} - (CASE WHEN tgconstraint != 0::OID THEN true ElSE false END) AS is_constarint, + (CASE WHEN tgconstraint != 0::OID THEN true ElSE false END) AS is_constraint_trigger, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger FROM pg_trigger t JOIN pg_class cl ON cl.oid=tgrelid diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger.js index 843ff11a2..04f9a415e 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger.js @@ -249,8 +249,9 @@ define('pgadmin.node.trigger', [ group: gettext('Definition'), disabled: function(m) { // Disabled if table is a partitioned table. - if (_.has(m, 'node_info') && _.has(m.node_info, 'table') && - _.has(m.node_info.table, 'is_partitioned') && m.node_info.table.is_partitioned) + if ((_.has(m, 'node_info') && _.has(m.node_info, 'table') && + _.has(m.node_info.table, 'is_partitioned') && m.node_info.table.is_partitioned) || + _.indexOf(Object.keys(m.node_info), 'view') != -1) { setTimeout(function(){ m.set('is_constraint_trigger', false); @@ -258,6 +259,8 @@ define('pgadmin.node.trigger', [ return true; } + + return m.inSchemaWithModelCheck.apply(this, [m]); } },{ id: 'tgdeferrable', label: gettext('Deferrable?'), @@ -486,10 +489,6 @@ define('pgadmin.node.trigger', [ },{ id: 'is_sys_trigger', label: gettext('System trigger?'), cell: 'string', type: 'switch', disabled: 'inSchemaWithModelCheck', mode: ['properties'] - },{ - id: 'is_constarint', label: gettext('Constraint?'), cell: 'string', - type: 'switch', disabled: 'inSchemaWithModelCheck', mode: ['properties'], - group: gettext('Definition') },{ id: 'description', label: gettext('Comment'), cell: 'string', type: 'multiline', mode: ['properties', 'create', 'edit'],