Hi,

PFA attach patch to add property into trigger node to display if trigger is
enabled or disabled in Properties panel and also in  dialog.
RM#2386

Also used node-list-by-name control instead of muti-select control for
listing table columns to simplify the logic.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/create.sql
 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/create.sql
index ecb0070..611a593 100644
--- 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/create.sql
+++ 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/create.sql
@@ -11,7 +11,7 @@ CREATE{% if data.is_constraint_trigger %} CONSTRAINT{% endif 
%} TRIGGER {{ conn|
 {% endif %}{% if data.evnt_truncate %}
 {% if or_flag %} OR {% endif %}TRUNCATE{% set or_flag = True %}
 {% endif %}{% if data.evnt_update %}
-{% if or_flag %} OR {% endif %}UPDATE {% if data.columns|length > 0 %}OF {% 
for c in data.columns %}{% if loop.index != 1 %}, {% endif %}{{ 
conn|qtIdent(c.column) }}{% endfor %}{% endif %}
+{% if or_flag %} OR {% endif %}UPDATE {% if data.columns|length > 0 %}OF {% 
for c in data.columns %}{% if loop.index != 1 %}, {% endif %}{{ conn|qtIdent(c) 
}}{% endfor %}{% endif %}
 {% endif %}
 
     ON {{ conn|qtIdent(data.schema, data.table) }}
diff --git 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/update.sql
 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/update.sql
index 86a7ba1..9b023ef 100644
--- 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/update.sql
+++ 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/update.sql
@@ -14,9 +14,9 @@ CREATE OR REPLACE TRIGGER {{ conn|qtIdent(data.name) }}
 {% if or_flag %} OR {% endif %}TRUNCATE{% set or_flag = True %}
 {% endif %}{% else %} {% if data.evnt_truncate %}
 {% if or_flag %} OR {% endif %}TRUNCATE{% set or_flag = True %} {%endif %} {% 
endif %}{% if data.evnt_update is not defined %}{% if o_data.evnt_update %}
-{% if or_flag %} OR {% endif %}UPDATE {% if o_data.columns|length > 0 %}OF {% 
for c in o_data.columns %}{% if loop.index != 1 %}, {% endif %}{{ 
conn|qtIdent(c.column) }}{% endfor %}{% endif %}
+{% if or_flag %} OR {% endif %}UPDATE {% if o_data.columns|length > 0 %}OF {% 
for c in o_data.columns %}{% if loop.index != 1 %}, {% endif %}{{ 
conn|qtIdent(c) }}{% endfor %}{% endif %}
 {% endif %}{% else %} {% if data.evnt_update %}
-{% if or_flag %} OR {% endif %}UPDATE {% if o_data.columns|length > 0 %}OF {% 
for c in o_data.columns %}{% if loop.index != 1 %}, {% endif %}{{ 
conn|qtIdent(c.column) }}{% endfor %}{% endif %}{% endif %}
+{% if or_flag %} OR {% endif %}UPDATE {% if o_data.columns|length > 0 %}OF {% 
for c in o_data.columns %}{% if loop.index != 1 %}, {% endif %}{{ 
conn|qtIdent(c) }}{% endfor %}{% endif %}{% endif %}
 {% endif %}
 
     ON {{ conn|qtIdent(data.schema, data.table) }}
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 be0404f..d3f51af 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
@@ -466,7 +466,7 @@ class TriggerView(PGChildNodeView):
         columns = []
 
         for row in rset['rows']:
-            columns.append({'column': row['name']})
+            columns.append(row['name'])
 
         return columns
 
@@ -572,7 +572,7 @@ class TriggerView(PGChildNodeView):
             # and convert it to string
             data['tgargs'] = self._format_args(data['custom_tgargs'])
 
-        if len(data['tgattr']) > 1:
+        if len(data['tgattr']) >= 1:
             columns = ', '.join(data['tgattr'].split(' '))
             data['columns'] = self._column_details(tid, columns)
 
@@ -790,8 +790,8 @@ class TriggerView(PGChildNodeView):
 
         try:
             sql, name = self.get_sql(scid, tid, trid, data)
-            if not isinstance(SQL, (str, unicode)):
-                return SQL
+            if not isinstance(sql, (str, unicode)):
+                return sql
             sql = sql.strip('\n').strip(' ')
 
             if sql == '':
diff --git 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/templates/trigger/js/trigger.js
 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/templates/trigger/js/trigger.js
index 3f44e7e..370bbbc 100644
--- 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/templates/trigger/js/trigger.js
+++ 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/templates/trigger/js/trigger.js
@@ -194,8 +194,8 @@ function($, _, S, pgAdmin, pgBrowser, Backform, alertify) {
           id: 'oid', label:'{{ _('OID') }}', cell: 'string',
           type: 'int', disabled: true, mode: ['properties']
         },{
-          id: 'is_enable_trigger', label:'{{ _('Enable trigger?') }}',
-          type: 'switch', disabled: 'inSchema', mode: ['properties'],
+          id: 'is_enable_trigger', label:'{{ _('Trigger enabled?') }}',
+          type: 'switch', disabled: true, mode: ['edit', 'properties'],
           group: '{{ _('Definition') }}'
         },{
           id: 'is_row_trigger', label:'{{ _('Row trigger?') }}',
@@ -419,11 +419,9 @@ function($, _, S, pgAdmin, pgBrowser, Backform, alertify) {
             control: 'sql-field', visible: true, group: '{{ _('Events') }}'
         },{
             id: 'columns', label: '{{ _('Columns') }}', url: 'nodes',
-            type: 'collection', control: 'multi-select-ajax',
+            control: 'node-list-by-name', cache_node: 'column', type: 'array',
+            select2: {'multiple': true},
             deps: ['evnt_update'], node: 'column', group: '{{ _('Events') }}',
-            model: pgBrowser.Node.Model.extend({
-                keys: ['column'], defaults: { column: undefined }
-            }),
             disabled: function(m) {
                 if(this.node_info &&  'catalog' in this.node_info) {
                     return true;
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to