From 131a944e246cf4ec71f064178725e33fbb0f4acd Mon Sep 17 00:00:00 2001 From: Aditya Toshniwal Date: Fri, 1 Nov 2019 11:49:17 +0000 Subject: [PATCH] Support Enable Always and Enable Replica on triggers. Fixes #4006 --- docs/en_US/compound_trigger_dialog.rst | 7 ++++++ .../compound_trigger_general_enabled.png | Bin 0 -> 52850 bytes .../images/trigger_definition_enabled.png | Bin 0 -> 73892 bytes docs/en_US/release_notes_4_15.rst | 1 + docs/en_US/trigger_dialog.rst | 9 ++++++- .../databases/schemas/tables/__init__.py | 9 ++++--- .../tables/compound_triggers/__init__.py | 23 +++++++++--------- .../static/js/compound_trigger.js | 13 +++++++--- .../tests/test_compound_triggers_put.py | 12 +++++++-- .../static/js/enable_disable_triggers.js | 4 +-- .../ppas/12_plus/enable_disable_trigger.sql | 3 ++- .../sql/ppas/12_plus/nodes.sql | 2 +- .../sql/ppas/12_plus/properties.sql | 5 ++-- .../sql/ppas/12_plus/update.sql | 3 ++- .../sql/default/enable_disable_trigger.sql | 3 ++- .../triggers/sql/gpdb/9.1_plus/nodes.sql | 3 +-- .../triggers/sql/gpdb/9.1_plus/properties.sql | 5 ++-- .../gpdb/default/enable_disable_trigger.sql | 3 ++- .../triggers/sql/gpdb/default/nodes.sql | 2 +- .../triggers/sql/gpdb/default/update.sql | 3 ++- .../triggers/sql/pg/10_plus/properties.sql | 3 +-- .../triggers/sql/pg/9.1_plus/nodes.sql | 3 +-- .../triggers/sql/pg/9.1_plus/properties.sql | 5 ++-- .../sql/pg/default/enable_disable_trigger.sql | 3 ++- .../triggers/sql/pg/default/nodes.sql | 2 +- .../triggers/sql/pg/default/update.sql | 3 ++- .../triggers/sql/ppas/10_plus/properties.sql | 3 +-- .../triggers/sql/ppas/12_plus/nodes.sql | 3 +-- .../triggers/sql/ppas/12_plus/properties.sql | 3 +-- .../triggers/sql/ppas/9.1_plus/nodes.sql | 3 +-- .../triggers/sql/ppas/9.1_plus/properties.sql | 5 ++-- .../ppas/default/enable_disable_trigger.sql | 3 ++- .../triggers/sql/ppas/default/nodes.sql | 2 +- .../triggers/sql/ppas/default/update.sql | 3 ++- .../schemas/tables/triggers/__init__.py | 21 ++++++++-------- .../tables/triggers/static/js/trigger.js | 14 ++++++++--- .../triggers/tests/test_triggers_put.py | 20 +++++++++++---- .../servers/databases/schemas/tables/utils.py | 4 +-- .../table/enable_disable_triggers_spec.js | 4 +-- 39 files changed, 131 insertions(+), 86 deletions(-) create mode 100644 docs/en_US/images/compound_trigger_general_enabled.png create mode 100644 docs/en_US/images/trigger_definition_enabled.png diff --git a/docs/en_US/compound_trigger_dialog.rst b/docs/en_US/compound_trigger_dialog.rst index f8e0f21d9..c6d825cac 100644 --- a/docs/en_US/compound_trigger_dialog.rst +++ b/docs/en_US/compound_trigger_dialog.rst @@ -24,6 +24,13 @@ Use the fields in the *General* tab to identify the compound trigger: The name will be displayed in the *pgAdmin* tree control. * Store notes about the compound trigger in the *Comment* field. +.. image:: images/compound_trigger_general_enabled.png + :alt: Trigger enabled in dialog tab + :align: center + +* *Trigger enabled* field is available in compound trigger dialog once the trigger is created. + You can select one of the four options available. + Click the *Events* tab to continue. .. image:: images/compound_trigger_events.png diff --git a/docs/en_US/images/compound_trigger_general_enabled.png b/docs/en_US/images/compound_trigger_general_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d350a88453114f8af00ff5f209d0d917afcd3308 GIT binary patch literal 52850 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 - Added encrypted password in reverse engineered SQL for roles. | `Issue #4351 `_ - Add an option to request confirmation before cancelling changes on a Properties dialog. +| `Issue #4006 `_ - Support Enable Always and Enable Replica on triggers. Housekeeping ************ diff --git a/docs/en_US/trigger_dialog.rst b/docs/en_US/trigger_dialog.rst index 0efbc13de..5c1859383 100644 --- a/docs/en_US/trigger_dialog.rst +++ b/docs/en_US/trigger_dialog.rst @@ -48,6 +48,13 @@ Use the fields in the *Definition* tab to define the trigger: arguments to the function when the trigger is executed. The arguments are literal string constants. +.. image:: images/trigger_definition_enabled.png + :alt: Trigger enabled in dialog tab + :align: center + +* *Trigger enabled* field is available in trigger dialog once the trigger is created. + You can select one of the four options available. + Click the *Events* tab to continue. .. image:: images/trigger_events.png @@ -96,4 +103,4 @@ The example demonstrates creating a trigger named *log_update*. * Click the *Info* button (i) to access online help. * Click the *Save* button to save work. * Click the *Cancel* button to exit without saving work. -* Click the *Reset* button to restore configuration parameters. \ No newline at end of file +* Click the *Reset* button to restore configuration parameters. diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py index f519205d2..af0e02d8c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py @@ -1228,7 +1228,7 @@ class TableView(BaseTableView, DataTypeReader, VacuumSettings): request.data, encoding='utf-8' ) # Convert str 'true' to boolean type - is_enable = json.loads(data['enable']) + is_enable_trigger = data['is_enable_trigger'] try: SQL = render_template( @@ -1245,7 +1245,7 @@ class TableView(BaseTableView, DataTypeReader, VacuumSettings): "/".join([ self.table_template_path, 'enable_disable_trigger.sql' ]), - data=data, is_enable_trigger=is_enable + data=data, is_enable_trigger=is_enable_trigger ) status, res = self.conn.execute_scalar(SQL) if not status: @@ -1253,8 +1253,9 @@ class TableView(BaseTableView, DataTypeReader, VacuumSettings): return make_json_response( success=1, - info=gettext("Trigger(s) have been enabled") if is_enable - else gettext("Trigger(s) have been disabled"), + info=gettext("Trigger(s) have been disabled") + if is_enable_trigger == 'D' + else gettext("Trigger(s) have been enabled"), data={ 'id': tid, 'scid': scid diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py index 9f4476850..d72cc83f2 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py @@ -372,9 +372,9 @@ class CompoundTriggerView(PGChildNodeView): rset['rows'][0]['oid'], tid, rset['rows'][0]['name'], - icon="icon-compound_trigger" if - rset['rows'][0]['is_enable_trigger'] else - "icon-compound_trigger-bad" + icon="icon-compound_trigger-bad" if + rset['rows'][0]['is_enable_trigger'] == 'D' else + "icon-compound_trigger" ) return make_json_response( @@ -412,8 +412,9 @@ class CompoundTriggerView(PGChildNodeView): row['oid'], tid, row['name'], - icon="icon-compound_trigger" if row['is_enable_trigger'] - else "icon-compound_trigger-bad" + icon="icon-compound_trigger-bad" + if row['is_enable_trigger'] == 'D' + else "icon-compound_trigger" )) return make_json_response( @@ -736,9 +737,9 @@ class CompoundTriggerView(PGChildNodeView): new_trid, tid, name, - icon="icon-%s" % self.node_type if - data['is_enable_trigger'] else - "icon-%s-bad" % self.node_type + icon="icon-%s-bad" % self.node_type if + data['is_enable_trigger'] == 'D' else + "icon-%s" % self.node_type ) ) except Exception as e: @@ -889,7 +890,7 @@ class CompoundTriggerView(PGChildNodeView): SQL = sql_header + '\n\n' + SQL.strip('\n') # If compound trigger is disbaled then add sql code for the same - if not data['is_enable_trigger']: + if data['is_enable_trigger'] != 'O': SQL += '\n\n' SQL += render_template("/".join([self.template_path, 'enable_disable_trigger.sql']), @@ -917,7 +918,7 @@ class CompoundTriggerView(PGChildNodeView): ) # Convert str 'true' to boolean type - is_enable_flag = json.loads(data['enable']) + is_enable_trigger = data['is_enable_trigger'] try: @@ -940,7 +941,7 @@ class CompoundTriggerView(PGChildNodeView): # current compound trigger which is disabled already so we need to # alter the 'is_enable_trigger' flag so that we can render # correct SQL for operation - o_data['is_enable_trigger'] = is_enable_flag + o_data['is_enable_trigger'] = is_enable_trigger # Adding parent into data dict, will be using it while creating sql o_data['schema'] = self.schema diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/static/js/compound_trigger.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/static/js/compound_trigger.js index 592f08a8c..0f74895cf 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/static/js/compound_trigger.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/static/js/compound_trigger.js @@ -108,7 +108,7 @@ define('pgadmin.node.compound_trigger', [ $.ajax({ url: obj.generate_url(i, 'enable' , d, true), type:'PUT', - data: {'enable' : true}, + data: {'is_enable_trigger' : 'O'}, dataType: 'json', }) .done(function(res) { @@ -146,7 +146,7 @@ define('pgadmin.node.compound_trigger', [ $.ajax({ url: obj.generate_url(i, 'enable' , d, true), type:'PUT', - data: {'enable' : false}, + data: {'is_enable_trigger' : 'D'}, dataType: 'json', }) .done(function(res) { @@ -185,13 +185,20 @@ define('pgadmin.node.compound_trigger', [ type: 'int', disabled: true, mode: ['properties'], },{ id: 'is_enable_trigger', label: gettext('Trigger enabled?'), - type: 'switch', mode: ['edit', 'properties'], + mode: ['edit', 'properties'], disabled: function() { if(this.node_info && ('catalog' in this.node_info || 'view' in this.node_info)) { return true; } return false; }, + options: [ + {label: 'Enable', value: 'O'}, + {label: 'Enable Replica', value: 'R'}, + {label: 'Enable Always', value: 'A'}, + {label: 'Disable', value: 'D'}, + ], + control: 'select2', select2: { allowClear: false, width: '100%' }, },{ type: 'nested', control: 'fieldset', mode: ['create','edit', 'properties'], label: gettext('FOR Events'), group: gettext('Events'), contentClass: 'row', diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/tests/test_compound_triggers_put.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/tests/test_compound_triggers_put.py index 526bd9840..296f99757 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/tests/test_compound_triggers_put.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/tests/test_compound_triggers_put.py @@ -45,12 +45,20 @@ class CompoundTriggersUpdateTestCase(BaseTestGenerator): })), ('Enable compound trigger', dict(url='/browser/compound_trigger/obj/', - data={"is_enable_trigger": True}, + data={"is_enable_trigger": 'O'}, disable_trigger=True )), + ('Enable always compound trigger', + dict(url='/browser/compound_trigger/obj/', + data={"is_enable_trigger": 'A'} + )), + ('Enable replica compound trigger', + dict(url='/browser/compound_trigger/obj/', + data={"is_enable_trigger": 'R'} + )), ('Disable compound trigger', dict(url='/browser/compound_trigger/obj/', - data={"is_enable_trigger": False} + data={"is_enable_trigger": 'D'} )), ] diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/enable_disable_triggers.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/enable_disable_triggers.js index fe346de87..ddf296ad0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/enable_disable_triggers.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/enable_disable_triggers.js @@ -10,10 +10,10 @@ import axios from 'axios'; export function disableTriggers(tree, alertify, generateUrl, args) { - return setTriggers(tree, alertify, generateUrl, args, {enable: 'false' }); + return setTriggers(tree, alertify, generateUrl, args, {is_enable_trigger: 'D' }); } export function enableTriggers(tree, alertify, generateUrl, args) { - return setTriggers(tree, alertify, generateUrl, args, {enable: 'true' }); + return setTriggers(tree, alertify, generateUrl, args, {is_enable_trigger: 'O' }); } function setTriggers(tree, alertify, generateUrl, args, params) { diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/enable_disable_trigger.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/enable_disable_trigger.sql index b7009272d..174a37be4 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/enable_disable_trigger.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/enable_disable_trigger.sql @@ -1,2 +1,3 @@ +{% set enable_map = {'R':'ENABLE REPLICA', 'A':'ENABLE ALWAYS', 'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(data.schema, data.table) }} - {% if data.is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER {{ conn|qtIdent(data.name) }}; \ No newline at end of file + {{ enable_map[data.is_enable_trigger] }} TRIGGER {{ conn|qtIdent(data.name) }}; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/nodes.sql index 6b9b084bd..cee1d6376 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/nodes.sql @@ -1,4 +1,4 @@ -SELECT t.oid, t.tgname as name, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger +SELECT t.oid, t.tgname as name, t.tgenabled AS is_enable_trigger FROM pg_trigger t WHERE NOT tgisinternal diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/properties.sql index dae839728..6acd6aa7d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/properties.sql @@ -1,4 +1,4 @@ -SELECT t.oid,t.tgname AS name, t.xmin, t.tgtype, t.tgattr, relname, +SELECT t.oid,t.tgname AS name, t.xmin, t.tgenabled AS is_enable_trigger, t.tgtype, t.tgattr, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, nspname, des.description, regexp_replace(regexp_replace(pg_get_triggerdef(t.oid), @@ -6,9 +6,8 @@ SELECT t.oid,t.tgname AS name, t.xmin, t.tgtype, t.tgattr, relname, ) AS prosrc, COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \nCOMPOUND'), NULL) AS whenclause, {% if datlastsysoid %} - (CASE WHEN t.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_trigger, + (CASE WHEN t.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_trigger {% endif %} - (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 JOIN pg_namespace na ON na.oid=relnamespace diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/update.sql index bce89f525..6a2298523 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/compound_triggers/sql/ppas/12_plus/update.sql @@ -38,6 +38,7 @@ COMMENT ON TRIGGER {{ conn|qtIdent(data.name) }} ON {{ conn|qtIdent(o_data.nspna IS {{data.description|qtLiteral}}; {% endif %} {% if data.is_enable_trigger is defined and o_data.is_enable_trigger != data.is_enable_trigger %} +{% set enable_map = {'R':'ENABLE REPLICA', 'A':'ENABLE ALWAYS', 'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(o_data.nspname, o_data.relname) }} - {% if data.is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER {{ conn|qtIdent(data.name) }}; + {{ enable_map[data.is_enable_trigger] }} TRIGGER {{ conn|qtIdent(data.name) }}; {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/enable_disable_trigger.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/enable_disable_trigger.sql index a4ab15401..d85d04e8f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/enable_disable_trigger.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/enable_disable_trigger.sql @@ -1,2 +1,3 @@ +{% set enable_map = {'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(data.schema, data.name) }} - {% if is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER ALL; \ No newline at end of file + {{ enable_map[is_enable_trigger] }} TRIGGER ALL; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/9.1_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/9.1_plus/nodes.sql index 59372cce3..ef06054e0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/9.1_plus/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/9.1_plus/nodes.sql @@ -1,6 +1,5 @@ -SELECT t.oid, t.tgname as name, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger +SELECT t.oid, t.tgname as name, t.tgenabled AS is_enable_trigger FROM pg_trigger t - WHERE NOT tgisinternal AND tgrelid = {{tid}}::OID {% if trid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/9.1_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/9.1_plus/properties.sql index 6d17cb65e..eda53eb5c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/9.1_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/9.1_plus/properties.sql @@ -1,4 +1,4 @@ -SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, +SELECT t.oid,t.tgname AS name, t.xmin, t.tgenabled AS is_enable_trigger, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, nspname, des.description, l.lanname, p.prosrc, p.proname AS tfunction, COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'), substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \$trigger')) AS whenclause, @@ -7,8 +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_constraint_trigger, - (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger + (CASE WHEN tgconstraint != 0::OID THEN true ElSE false END) AS is_constraint_trigger FROM pg_trigger t JOIN pg_class cl ON cl.oid=tgrelid JOIN pg_namespace na ON na.oid=relnamespace diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/enable_disable_trigger.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/enable_disable_trigger.sql index b7009272d..174a37be4 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/enable_disable_trigger.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/enable_disable_trigger.sql @@ -1,2 +1,3 @@ +{% set enable_map = {'R':'ENABLE REPLICA', 'A':'ENABLE ALWAYS', 'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(data.schema, data.table) }} - {% if data.is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER {{ conn|qtIdent(data.name) }}; \ No newline at end of file + {{ enable_map[data.is_enable_trigger] }} TRIGGER {{ conn|qtIdent(data.name) }}; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/nodes.sql index 2a10badf2..03610acb6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/nodes.sql @@ -1,4 +1,4 @@ -SELECT t.oid, t.tgname as name, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger +SELECT t.oid, t.tgname as name, t.tgenabled AS is_enable_trigger FROM pg_trigger t WHERE tgrelid = {{tid}}::OID {% if trid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/update.sql index 05af50e27..3b8d64545 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/gpdb/default/update.sql @@ -45,6 +45,7 @@ COMMENT ON TRIGGER {{ conn|qtIdent(data.name) }} ON {{ conn|qtIdent(o_data.nspna IS {{data.description|qtLiteral}}; {% endif %} {% if data.is_enable_trigger is defined and o_data.is_enable_trigger != data.is_enable_trigger %} +{% set enable_map = {'R':'ENABLE REPLICA', 'A':'ENABLE ALWAYS', 'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(o_data.nspname, o_data.relname) }} - {% if data.is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER {{ conn|qtIdent(data.name) }}; + {{ enable_map[data.is_enable_trigger] }} TRIGGER {{ conn|qtIdent(data.name) }}; {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/10_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/10_plus/properties.sql index 3be4c82cd..d6500f3a1 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/10_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/10_plus/properties.sql @@ -1,4 +1,4 @@ -SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, +SELECT t.oid,t.tgname AS name, t.xmin, t.tgenabled AS is_enable_trigger, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, nspname, des.description, l.lanname, p.prosrc, p.proname AS tfunction, COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'), substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \$trigger')) AS whenclause, @@ -8,7 +8,6 @@ SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THE (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_constraint_trigger, - (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger, tgoldtable, tgnewtable FROM pg_trigger t diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/9.1_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/9.1_plus/nodes.sql index 59372cce3..ef06054e0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/9.1_plus/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/9.1_plus/nodes.sql @@ -1,6 +1,5 @@ -SELECT t.oid, t.tgname as name, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger +SELECT t.oid, t.tgname as name, t.tgenabled AS is_enable_trigger FROM pg_trigger t - WHERE NOT tgisinternal AND tgrelid = {{tid}}::OID {% if trid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/9.1_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/9.1_plus/properties.sql index 6d17cb65e..eda53eb5c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/9.1_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/9.1_plus/properties.sql @@ -1,4 +1,4 @@ -SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, +SELECT t.oid,t.tgname AS name, t.xmin, t.tgenabled AS is_enable_trigger, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, nspname, des.description, l.lanname, p.prosrc, p.proname AS tfunction, COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'), substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \$trigger')) AS whenclause, @@ -7,8 +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_constraint_trigger, - (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger + (CASE WHEN tgconstraint != 0::OID THEN true ElSE false END) AS is_constraint_trigger FROM pg_trigger t JOIN pg_class cl ON cl.oid=tgrelid JOIN pg_namespace na ON na.oid=relnamespace diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/enable_disable_trigger.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/enable_disable_trigger.sql index b7009272d..174a37be4 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/enable_disable_trigger.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/enable_disable_trigger.sql @@ -1,2 +1,3 @@ +{% set enable_map = {'R':'ENABLE REPLICA', 'A':'ENABLE ALWAYS', 'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(data.schema, data.table) }} - {% if data.is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER {{ conn|qtIdent(data.name) }}; \ No newline at end of file + {{ enable_map[data.is_enable_trigger] }} TRIGGER {{ conn|qtIdent(data.name) }}; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/nodes.sql index 2a10badf2..03610acb6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/nodes.sql @@ -1,4 +1,4 @@ -SELECT t.oid, t.tgname as name, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger +SELECT t.oid, t.tgname as name, t.tgenabled AS is_enable_trigger FROM pg_trigger t WHERE tgrelid = {{tid}}::OID {% if trid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/update.sql index 05af50e27..3b8d64545 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/pg/default/update.sql @@ -45,6 +45,7 @@ COMMENT ON TRIGGER {{ conn|qtIdent(data.name) }} ON {{ conn|qtIdent(o_data.nspna IS {{data.description|qtLiteral}}; {% endif %} {% if data.is_enable_trigger is defined and o_data.is_enable_trigger != data.is_enable_trigger %} +{% set enable_map = {'R':'ENABLE REPLICA', 'A':'ENABLE ALWAYS', 'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(o_data.nspname, o_data.relname) }} - {% if data.is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER {{ conn|qtIdent(data.name) }}; + {{ enable_map[data.is_enable_trigger] }} TRIGGER {{ conn|qtIdent(data.name) }}; {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/10_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/10_plus/properties.sql index 3be4c82cd..d6500f3a1 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/10_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/10_plus/properties.sql @@ -1,4 +1,4 @@ -SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, +SELECT t.oid,t.tgname AS name, t.xmin, t.tgenabled AS is_enable_trigger, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, nspname, des.description, l.lanname, p.prosrc, p.proname AS tfunction, COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'), substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \$trigger')) AS whenclause, @@ -8,7 +8,6 @@ SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THE (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_constraint_trigger, - (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger, tgoldtable, tgnewtable FROM pg_trigger t diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/12_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/12_plus/nodes.sql index b625ff433..b37909214 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/12_plus/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/12_plus/nodes.sql @@ -1,6 +1,5 @@ -SELECT t.oid, t.tgname as name, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger +SELECT t.oid, t.tgname as name, t.tgenabled AS is_enable_trigger FROM pg_trigger t - WHERE NOT tgisinternal AND tgrelid = {{tid}}::OID AND tgpackageoid = 0 diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/12_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/12_plus/properties.sql index 8c61f5cf3..b9da5d1d9 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/12_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/12_plus/properties.sql @@ -1,4 +1,4 @@ -SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, +SELECT t.oid,t.tgname AS name, t.xmin, t.tgenabled AS is_enable_trigger, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, nspname, des.description, l.lanname, p.prosrc, p.proname AS tfunction, COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'), substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \$trigger')) AS whenclause, @@ -8,7 +8,6 @@ SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THE (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_constraint_trigger, - (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger, tgoldtable, tgnewtable FROM pg_trigger t diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/9.1_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/9.1_plus/nodes.sql index 59372cce3..ef06054e0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/9.1_plus/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/9.1_plus/nodes.sql @@ -1,6 +1,5 @@ -SELECT t.oid, t.tgname as name, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger +SELECT t.oid, t.tgname as name, t.tgenabled AS is_enable_trigger FROM pg_trigger t - WHERE NOT tgisinternal AND tgrelid = {{tid}}::OID {% if trid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/9.1_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/9.1_plus/properties.sql index 6d17cb65e..eda53eb5c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/9.1_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/9.1_plus/properties.sql @@ -1,4 +1,4 @@ -SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, +SELECT t.oid,t.tgname AS name, t.xmin, t.tgenabled AS is_enable_trigger, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, nspname, des.description, l.lanname, p.prosrc, p.proname AS tfunction, COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'), substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \$trigger')) AS whenclause, @@ -7,8 +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_constraint_trigger, - (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger + (CASE WHEN tgconstraint != 0::OID THEN true ElSE false END) AS is_constraint_trigger FROM pg_trigger t JOIN pg_class cl ON cl.oid=tgrelid JOIN pg_namespace na ON na.oid=relnamespace diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/enable_disable_trigger.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/enable_disable_trigger.sql index b7009272d..174a37be4 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/enable_disable_trigger.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/enable_disable_trigger.sql @@ -1,2 +1,3 @@ +{% set enable_map = {'R':'ENABLE REPLICA', 'A':'ENABLE ALWAYS', 'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(data.schema, data.table) }} - {% if data.is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER {{ conn|qtIdent(data.name) }}; \ No newline at end of file + {{ enable_map[data.is_enable_trigger] }} TRIGGER {{ conn|qtIdent(data.name) }}; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/nodes.sql index 2a10badf2..03610acb6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/nodes.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/nodes.sql @@ -1,4 +1,4 @@ -SELECT t.oid, t.tgname as name, (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger +SELECT t.oid, t.tgname as name, t.tgenabled AS is_enable_trigger FROM pg_trigger t WHERE tgrelid = {{tid}}::OID {% if trid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/update.sql index 05af50e27..3b8d64545 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/triggers/sql/ppas/default/update.sql @@ -45,6 +45,7 @@ COMMENT ON TRIGGER {{ conn|qtIdent(data.name) }} ON {{ conn|qtIdent(o_data.nspna IS {{data.description|qtLiteral}}; {% endif %} {% if data.is_enable_trigger is defined and o_data.is_enable_trigger != data.is_enable_trigger %} +{% set enable_map = {'R':'ENABLE REPLICA', 'A':'ENABLE ALWAYS', 'O':'ENABLE', 'D':'DISABLE'} %} ALTER TABLE {{ conn|qtIdent(o_data.nspname, o_data.relname) }} - {% if data.is_enable_trigger == True %}ENABLE{% else %}DISABLE{% endif %} TRIGGER {{ conn|qtIdent(data.name) }}; + {{ enable_map[data.is_enable_trigger] }} TRIGGER {{ conn|qtIdent(data.name) }}; {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py index 191bc3820..ecc231725 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py @@ -410,8 +410,8 @@ class TriggerView(PGChildNodeView): rset['rows'][0]['oid'], tid, rset['rows'][0]['name'], - icon="icon-trigger" if - rset['rows'][0]['is_enable_trigger'] else "icon-trigger-bad" + icon="icon-trigger-bad" if + rset['rows'][0]['is_enable_trigger'] == 'D' else "icon-trigger" ) return make_json_response( @@ -449,8 +449,8 @@ class TriggerView(PGChildNodeView): row['oid'], tid, row['name'], - icon="icon-trigger" if row['is_enable_trigger'] - else "icon-trigger-bad" + icon="icon-trigger-bad" if row['is_enable_trigger'] == 'D' + else "icon-trigger" )) return make_json_response( @@ -804,9 +804,9 @@ class TriggerView(PGChildNodeView): new_trid, tid, name, - icon="icon-%s" % self.node_type if - data['is_enable_trigger'] else - "icon-%s-bad" % self.node_type + icon="icon-%s-bad" % self.node_type if + data['is_enable_trigger'] == 'D' else + "icon-%s" % self.node_type ) ) except Exception as e: @@ -999,7 +999,7 @@ class TriggerView(PGChildNodeView): SQL = sql_header + '\n\n' + SQL.strip('\n') # If trigger is disbaled then add sql code for the same - if not data['is_enable_trigger']: + if data['is_enable_trigger'] != 'O': SQL += '\n\n' SQL += render_template("/".join([self.template_path, 'enable_disable_trigger.sql']), @@ -1025,8 +1025,7 @@ class TriggerView(PGChildNodeView): request.data, encoding='utf-8' ) - # Convert str 'true' to boolean type - is_enable_flag = json.loads(data['enable']) + is_enable_trigger = data['is_enable_trigger'] try: @@ -1049,7 +1048,7 @@ class TriggerView(PGChildNodeView): # current trigger which is disabled already so we need to # alter the 'is_enable_trigger' flag so that we can render # correct SQL for operation - o_data['is_enable_trigger'] = is_enable_flag + o_data['is_enable_trigger'] = is_enable_trigger # Adding parent into data dict, will be using it while creating sql o_data['schema'] = self.schema 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 a38894f6d..3ab6072c3 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 @@ -108,7 +108,7 @@ define('pgadmin.node.trigger', [ $.ajax({ url: obj.generate_url(i, 'enable' , d, true), type:'PUT', - data: {'enable' : true}, + data: {'is_enable_trigger' : 'O'}, dataType: 'json', }) .done(function(res) { @@ -146,7 +146,7 @@ define('pgadmin.node.trigger', [ $.ajax({ url: obj.generate_url(i, 'enable' , d, true), type:'PUT', - data: {'enable' : false}, + data: {'is_enable_trigger' : 'D'}, dataType: 'json', }) .done(function(res) { @@ -187,13 +187,20 @@ define('pgadmin.node.trigger', [ type: 'int', disabled: true, mode: ['properties'], },{ id: 'is_enable_trigger', label: gettext('Trigger enabled?'), - type: 'switch', mode: ['edit', 'properties'], group: gettext('Definition'), + mode: ['edit', 'properties'], group: gettext('Definition'), disabled: function() { if(this.node_info && ('catalog' in this.node_info || 'view' in this.node_info)) { return true; } return false; }, + options: [ + {label: 'Enable', value: 'O'}, + {label: 'Enable Replica', value: 'R'}, + {label: 'Enable Always', value: 'A'}, + {label: 'Disable', value: 'D'}, + ], + control: 'select2', select2: { allowClear: false, width: '100%' }, },{ id: 'is_row_trigger', label: gettext('Row trigger?'), type: 'switch', group: gettext('Definition'), @@ -352,7 +359,6 @@ define('pgadmin.node.trigger', [ return view_options; } }, - // If create mode then by default open composite type control: 'select2', select2: { allowClear: false, width: '100%' }, disabled: function(m) { // If contraint trigger is set to True then only enable it diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/tests/test_triggers_put.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/tests/test_triggers_put.py index ed0d0c352..fbcd02b65 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/tests/test_triggers_put.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/tests/test_triggers_put.py @@ -28,7 +28,18 @@ class TriggersUpdateTestCase(BaseTestGenerator): """This class will update trigger under table node.""" skip_on_database = ['gpdb'] scenarios = [ - ('Put trigger Node URL', dict(url='/browser/trigger/obj/')) + ('Put trigger Node URL', dict( + url='/browser/trigger/obj/', + data={"description": "This is test comment."})), + ('Enable Always compound trigger', + dict(url='/browser/trigger/obj/', + data={"is_enable_trigger": 'A'})), + ('Enable Replica compound trigger', + dict(url='/browser/trigger/obj/', + data={"is_enable_trigger": 'R'})), + ('Disable compound trigger', + dict(url='/browser/trigger/obj/', + data={"is_enable_trigger": 'D'})), ] def setUp(self): @@ -72,15 +83,14 @@ class TriggersUpdateTestCase(BaseTestGenerator): self.trigger_name) if not trigger_response: raise Exception("Could not find the trigger to update.") - data = {"id": self.trigger_id, - "description": "This is test comment." - } + + self.data.update({"id": self.trigger_id}) response = self.tester.put( "{0}{1}/{2}/{3}/{4}/{5}/{6}".format(self.url, utils.SERVER_GROUP, self.server_id, self.db_id, self.schema_id, self.table_id, self.trigger_id), - data=json.dumps(data), + data=json.dumps(self.data), follow_redirects=True ) self.assertEquals(response.status_code, 200) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py index 2201f0a60..d721eaf4b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py @@ -1075,7 +1075,7 @@ class BaseTableView(PGChildNodeView, BasePartitionTable): trigger_sql = sql_header + '\n\n' + trigger_sql.strip('\n') # If trigger is disabled then add sql code for the same - if not data['is_enable_trigger']: + if data['is_enable_trigger'] != 'O': trigger_sql += '\n\n' trigger_sql += render_template("/".join([ self.trigger_template_path, @@ -1155,7 +1155,7 @@ class BaseTableView(PGChildNodeView, BasePartitionTable): sql_header + '\n\n' + compound_trigger_sql.strip('\n') # If trigger is disabled then add sql code for the same - if not data['is_enable_trigger']: + if data['is_enable_trigger'] != 'O': compound_trigger_sql += '\n\n' compound_trigger_sql += render_template("/".join( [self.compound_trigger_template_path, diff --git a/web/regression/javascript/table/enable_disable_triggers_spec.js b/web/regression/javascript/table/enable_disable_triggers_spec.js index cc6591bbd..256689958 100644 --- a/web/regression/javascript/table/enable_disable_triggers_spec.js +++ b/web/regression/javascript/table/enable_disable_triggers_spec.js @@ -106,7 +106,7 @@ describe('#enableTriggers', () => { it('call backend with the correct parameters', (done) => { enableTriggers(tree, alertify, generateUrlSpy, {item: [{id: 'table1'}]}); setTimeout(() => { - expect(networkMockCalledWith.data).toEqual(JSON.stringify({enable: 'true'})); + expect(networkMockCalledWith.data).toEqual(JSON.stringify({is_enable_trigger: 'O'})); done(); }, 0); }); @@ -234,7 +234,7 @@ describe('#disableTriggers', () => { it('call backend with the correct parameters', (done) => { disableTriggers(tree, alertify, generateUrlSpy, {item: [{id: 'table1'}]}); setTimeout(() => { - expect(networkMockCalledWith.data).toEqual(JSON.stringify({enable: 'false'})); + expect(networkMockCalledWith.data).toEqual(JSON.stringify({is_enable_trigger: 'D'})); done(); }, 0); });