diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/templates/rules/js/rules.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/templates/rules/js/rules.js index 29022a6..b8e15c9 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/templates/rules/js/rules.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/templates/rules/js/rules.js @@ -45,7 +45,7 @@ function($, _, S, pgAdmin, pgBrowser, CodeMirror) { hasDepends: true, canDrop: function(itemData, item, data){ pgBrowser.Nodes['schema'].canChildDrop.apply(this, [itemData, item, data]); - if(itemData.label === '_RETURN') + if(_.has(itemData, 'label') && itemData.label === '_RETURN') return false; else { return true; @@ -53,7 +53,7 @@ function($, _, S, pgAdmin, pgBrowser, CodeMirror) { }, canDropCascade: function(itemData, item, data){ pgBrowser.Nodes['schema'].canChildDrop.apply(this, [itemData, item, data]); - if(itemData.label === '_RETURN') + if(_.has(itemData, 'label') && itemData.label === '_RETURN') return false; else { return true; @@ -136,9 +136,6 @@ function($, _, S, pgAdmin, pgBrowser, CodeMirror) { } }, { - id: 'comment', label:'{{ _("Comment") }}', cell: 'string', type: 'multiline' - }, - { id: 'event', label:'{{ _("Event") }}', control: 'select2', group: '{{ _("Definition") }}', type: 'text', select2: { @@ -172,6 +169,9 @@ function($, _, S, pgAdmin, pgBrowser, CodeMirror) { { id: 'enabled', label:'{{ _("Enabled?") }}', type: 'switch', mode: ['properties'] + }, + { + id: 'comment', label:'{{ _("Comment") }}', cell: 'string', type: 'multiline' } ], validate: function() { diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/create.sql index 1e9c361..be79941 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/create.sql @@ -11,7 +11,7 @@ CREATE OR REPLACE RULE {{ conn|qtIdent(data.name) }} AS {% if data.condition %} WHERE {{ data.condition }} {% endif %} - DO{% if data.is_instead == True %} + DO{% if data.do_instead in ['true', True] %} {{ ' INSTEAD' }} {% else %} {{ '' }} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/update.sql index 852818f..50b5434 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/rules/sql/update.sql @@ -1,5 +1,4 @@ {# ===== Update Rule ===== #} -{% if data.event or data.do_instead or data.condition %} CREATE OR REPLACE RULE {{ conn|qtIdent(o_data.name) }} AS ON {% if data.event and data.event != o_data.event %}{{ data.event|upper }}{% else %}{{ o_data.event|upper }}{% endif %} TO {{ conn|qtIdent(o_data.schema, o_data.view) }} @@ -8,7 +7,7 @@ CREATE OR REPLACE RULE {{ conn|qtIdent(o_data.name) }} AS {% elif data.condition is not defined and o_data.condition %} WHERE {{ o_data.condition }} {% endif %} - DO {% if data.do_instead in ['true', True] %}{{ 'INSTEAD' }}{% endif %} + DO {% if (('do_instead' not in data and o_data.do_instead in ['true', True]) or (data.do_instead in ['true', True])) %}{{ 'INSTEAD' }}{% endif %} {% if data.statements and data.statements != o_data.statements %} {{ data.statements.rstrip(';') }}; @@ -19,6 +18,5 @@ CREATE OR REPLACE RULE {{ conn|qtIdent(o_data.name) }} AS NOTHING; {% endif %} -{% endif %} {% if data.comment is defined and data.comment != o_data.comment %} COMMENT ON RULE {{ conn|qtIdent(o_data.name) }} ON {{ conn|qtIdent(o_data.schema, o_data.view) }} IS {{ data.comment|qtLiteral }};{% endif %}