class MonitIntegration < ActiveRecord::Migration[4.2] def up # return if it's a new setup return if !Setting.find_by(name: 'system_init_done') Setting.create_if_not_exists( title: 'Monit integration', name: 'monit_integration', area: 'Integration::Switch', description: 'Defines if Monit (https://mmonit.com/monit/) is enabled or not.', options: { form: [ { display: '', null: true, name: 'monit_integration', tag: 'boolean', options: { true => 'yes', false => 'no', }, }, ], }, state: false, preferences: { prio: 1, permission: ['admin.integration'], }, frontend: false ) Setting.create_if_not_exists( title: 'Sender', name: 'monit_sender', area: 'Integration::Monit', description: 'Defines the sender email address of the service emails.', options: { form: [ { display: '', null: false, name: 'monit_sender', tag: 'input', placeholder: 'monit@monitoring.example.com', }, ], }, state: 'monit@monitoring.example.com', preferences: { prio: 2, permission: ['admin.integration'], }, frontend: false, ) Setting.create_if_not_exists( title: 'Auto close', name: 'monit_auto_close', area: 'Integration::Monit', description: 'Defines if tickets should be closed if service is recovered.', options: { form: [ { display: '', null: true, name: 'monit_auto_close', tag: 'boolean', options: { true => 'yes', false => 'no', }, translate: true, }, ], }, state: true, preferences: { prio: 3, permission: ['admin.integration'], }, frontend: false ) Setting.create_if_not_exists( title: 'Auto close state', name: 'monit_auto_close_state_id', area: 'Integration::Monit', description: 'Defines the state of auto closed tickets.', options: { form: [ { display: '', null: false, name: 'monit_auto_close_state_id', tag: 'select', relation: 'TicketState', translate: true, }, ], }, state: 4, preferences: { prio: 4, permission: ['admin.integration'], }, frontend: false ) Setting.create_if_not_exists( title: 'Defines postmaster filter.', name: '5300_postmaster_filter_monit', area: 'Postmaster::PreFilter', description: 'Defines postmaster filter to manage Monit (https://mmonit.com/monit/) emails.', options: {}, state: 'Channel::Filter::Monit', frontend: false ) end end