Browse Source

Added example trigger. Re-assigned ticket_subject_size and ticket_subject_re in admin interface.

Martin Edenhofer 8 years ago
parent
commit
5bbb249240
2 changed files with 136 additions and 36 deletions
  1. 71 0
      db/migrate/20160717000001_update_setting_email.rb
  2. 65 36
      db/seeds.rb

+ 71 - 0
db/migrate/20160717000001_update_setting_email.rb

@@ -0,0 +1,71 @@
+class UpdateSettingEmail < ActiveRecord::Migration
+  def up
+    # return if it's a new setup
+    return if !Setting.find_by(name: 'system_init_done')
+
+    Setting.create_or_update(
+      title: 'Ticket Subject Size',
+      name: 'ticket_subject_size',
+      area: 'Email::Base',
+      description: 'Max size of the subjects in an email reply.',
+      options: {
+        form: [
+          {
+            display: '',
+            null: false,
+            name: 'ticket_subject_size',
+            tag: 'input',
+          },
+        ],
+      },
+      state: '110',
+      frontend: false
+    )
+    Setting.create_or_update(
+      title: 'Ticket Subject Reply',
+      name: 'ticket_subject_re',
+      area: 'Email::Base',
+      description: 'The text at the beginning of the subject in an email reply, e.g. RE, AW, or AS.',
+      options: {
+        form: [
+          {
+            display: '',
+            null: true,
+            name: 'ticket_subject_re',
+            tag: 'input',
+          },
+        ],
+      },
+      state: 'RE',
+      frontend: false
+    )
+
+    Trigger.create_or_update(
+      name: 'customer notification (on owner change)',
+      condition: {
+        'ticket.owner_id' => {
+          'operator' => 'has changed',
+          'pre_condition' => 'current_user.id',
+          'value' => '',
+          'value_completion' => '',
+        }
+      },
+      perform: {
+        'notification.email' => {
+          'body' => '<p>The owner of ticket (Ticket##{ticket.number}) has changed and is now "#{ticket.owner.firstname} #{ticket.owner.lastname}".<p>
+<br/>
+<p>To provide additional information, please reply to this email or click on the following link:
+<a href="#{config.http_type}://#{config.fqdn}/#ticket/zoom/#{ticket.id}">#{config.http_type}://#{config.fqdn}/#ticket/zoom/#{ticket.id}</a>
+</p>
+<br/>
+<p><i><a href="http://zammad.com">Zammad</a>, your customer support system</i></p>',
+          'recipient' => 'ticket_customer',
+          'subject' => 'Owner has changed (#{ticket.title})',
+        },
+      },
+      active: false,
+      created_by_id: 1,
+      updated_by_id: 1,
+    )
+  end
+end

+ 65 - 36
db/seeds.rb

@@ -825,42 +825,6 @@ Setting.create_if_not_exists(
   state: 'right',
   frontend: false
 )
-Setting.create_if_not_exists(
-  title: 'Ticket Subject Size',
-  name: 'ticket_subject_size',
-  area: 'Ticket::Base',
-  description: 'Max size of the subjects in an email reply.',
-  options: {
-    form: [
-      {
-        display: '',
-        null: false,
-        name: 'ticket_subject_size',
-        tag: 'input',
-      },
-    ],
-  },
-  state: '110',
-  frontend: false
-)
-Setting.create_if_not_exists(
-  title: 'Ticket Subject Reply',
-  name: 'ticket_subject_re',
-  area: 'Ticket::Base',
-  description: 'The text at the beginning of the subject in an email reply, e.g. RE, AW, or AS.',
-  options: {
-    form: [
-      {
-        display: '',
-        null: true,
-        name: 'ticket_subject_re',
-        tag: 'input',
-      },
-    ],
-  },
-  state: 'RE',
-  frontend: false
-)
 Setting.create_if_not_exists(
   title: 'Ticket Number Format',
   name: 'ticket_number',
@@ -1056,6 +1020,43 @@ Setting.create_if_not_exists(
   frontend: false,
 )
 
+Setting.create_if_not_exists(
+  title: 'Ticket Subject Size',
+  name: 'ticket_subject_size',
+  area: 'Email::Base',
+  description: 'Max size of the subjects in an email reply.',
+  options: {
+    form: [
+      {
+        display: '',
+        null: false,
+        name: 'ticket_subject_size',
+        tag: 'input',
+      },
+    ],
+  },
+  state: '110',
+  frontend: false
+)
+Setting.create_if_not_exists(
+  title: 'Ticket Subject Reply',
+  name: 'ticket_subject_re',
+  area: 'Email::Base',
+  description: 'The text at the beginning of the subject in an email reply, e.g. RE, AW, or AS.',
+  options: {
+    form: [
+      {
+        display: '',
+        null: true,
+        name: 'ticket_subject_re',
+        tag: 'input',
+      },
+    ],
+  },
+  state: 'RE',
+  frontend: false
+)
+
 Setting.create_if_not_exists(
   title: 'Sender Format',
   name: 'ticket_define_email_from',
@@ -4403,6 +4404,34 @@ Trigger.create_or_update(
   updated_by_id: 1,
 )
 
+Trigger.create_or_update(
+  name: 'customer notification (on owner change)',
+  condition: {
+    'ticket.owner_id' => {
+      'operator' => 'has changed',
+      'pre_condition' => 'current_user.id',
+      'value' => '',
+      'value_completion' => '',
+    }
+  },
+  perform: {
+    'notification.email' => {
+      'body' => '<p>The owner of ticket (Ticket##{ticket.number}) has changed and is now "#{ticket.owner.firstname} #{ticket.owner.lastname}".<p>
+<br/>
+<p>To provide additional information, please reply to this email or click on the following link:
+<a href="#{config.http_type}://#{config.fqdn}/#ticket/zoom/#{ticket.id}">#{config.http_type}://#{config.fqdn}/#ticket/zoom/#{ticket.id}</a>
+</p>
+<br/>
+<p><i><a href="http://zammad.com">Zammad</a>, your customer support system</i></p>',
+      'recipient' => 'ticket_customer',
+      'subject' => 'Owner has changed (#{ticket.title})',
+    },
+  },
+  active: false,
+  created_by_id: 1,
+  updated_by_id: 1,
+)
+
 # reset primary key sequences
 if ActiveRecord::Base.connection_config[:adapter] == 'postgresql'
   ActiveRecord::Base.connection.tables.each do |t|