Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/integrations/pushover.rb')
-rw-r--r--app/models/integrations/pushover.rb141
1 files changed, 65 insertions, 76 deletions
diff --git a/app/models/integrations/pushover.rb b/app/models/integrations/pushover.rb
index 7fd5efa8765..791e27c5db7 100644
--- a/app/models/integrations/pushover.rb
+++ b/app/models/integrations/pushover.rb
@@ -4,9 +4,73 @@ module Integrations
class Pushover < Integration
BASE_URI = 'https://api.pushover.net/1'
- prop_accessor :api_key, :user_key, :device, :priority, :sound
validates :api_key, :user_key, :priority, presence: true, if: :activated?
+ field :api_key,
+ type: 'password',
+ title: -> { _('API key') },
+ help: -> { s_('PushoverService|Enter your application key.') },
+ non_empty_password_title: -> { s_('ProjectService|Enter new API key') },
+ non_empty_password_help: -> { s_('ProjectService|Leave blank to use your current API key.') },
+ placeholder: '',
+ required: true
+
+ field :user_key,
+ type: 'password',
+ title: -> { _('User key') },
+ help: -> { s_('PushoverService|Enter your user key.') },
+ non_empty_password_title: -> { s_('PushoverService|Enter new user key') },
+ non_empty_password_help: -> { s_('PushoverService|Leave blank to use your current user key.') },
+ placeholder: '',
+ required: true
+
+ field :device,
+ title: -> { _('Devices (optional)') },
+ help: -> { s_('PushoverService|Leave blank for all active devices.') },
+ placeholder: ''
+
+ field :priority,
+ type: 'select',
+ required: true,
+ choices: -> do
+ [
+ [s_('PushoverService|Lowest priority'), -2],
+ [s_('PushoverService|Low priority'), -1],
+ [s_('PushoverService|Normal priority'), 0],
+ [s_('PushoverService|High priority'), 1]
+ ]
+ end
+
+ field :sound,
+ type: 'select',
+ choices: -> do
+ [
+ ['Device default sound', nil],
+ ['Pushover (default)', 'pushover'],
+ %w(Bike bike),
+ %w(Bugle bugle),
+ ['Cash Register', 'cashregister'],
+ %w(Classical classical),
+ %w(Cosmic cosmic),
+ %w(Falling falling),
+ %w(Gamelan gamelan),
+ %w(Incoming incoming),
+ %w(Intermission intermission),
+ %w(Magic magic),
+ %w(Mechanical mechanical),
+ ['Piano Bar', 'pianobar'],
+ %w(Siren siren),
+ ['Space Alarm', 'spacealarm'],
+ ['Tug Boat', 'tugboat'],
+ ['Alien Alarm (long)', 'alien'],
+ ['Climb (long)', 'climb'],
+ ['Persistent (long)', 'persistent'],
+ ['Pushover Echo (long)', 'echo'],
+ ['Up Down (long)', 'updown'],
+ ['None (silent)', 'none']
+ ]
+ end
+
def title
'Pushover'
end
@@ -19,81 +83,6 @@ module Integrations
'pushover'
end
- def fields
- [
- {
- type: 'password',
- name: 'api_key',
- title: _('API key'),
- help: s_('PushoverService|Enter your application key.'),
- non_empty_password_title: s_('ProjectService|Enter new API key'),
- non_empty_password_help: s_('ProjectService|Leave blank to use your current API key.'),
- placeholder: '',
- required: true
- },
- {
- type: 'password',
- name: 'user_key',
- title: _('User key'),
- help: s_('PushoverService|Enter your user key.'),
- non_empty_password_title: s_('PushoverService|Enter new user key'),
- non_empty_password_help: s_('PushoverService|Leave blank to use your current user key.'),
- placeholder: '',
- required: true
- },
- {
- type: 'text',
- name: 'device',
- title: _('Devices (optional)'),
- help: s_('PushoverService|Leave blank for all active devices.'),
- placeholder: ''
- },
- {
- type: 'select',
- name: 'priority',
- required: true,
- choices:
- [
- [s_('PushoverService|Lowest priority'), -2],
- [s_('PushoverService|Low priority'), -1],
- [s_('PushoverService|Normal priority'), 0],
- [s_('PushoverService|High priority'), 1]
- ],
- default_choice: 0
- },
- {
- type: 'select',
- name: 'sound',
- choices:
- [
- ['Device default sound', nil],
- ['Pushover (default)', 'pushover'],
- %w(Bike bike),
- %w(Bugle bugle),
- ['Cash Register', 'cashregister'],
- %w(Classical classical),
- %w(Cosmic cosmic),
- %w(Falling falling),
- %w(Gamelan gamelan),
- %w(Incoming incoming),
- %w(Intermission intermission),
- %w(Magic magic),
- %w(Mechanical mechanical),
- ['Piano Bar', 'pianobar'],
- %w(Siren siren),
- ['Space Alarm', 'spacealarm'],
- ['Tug Boat', 'tugboat'],
- ['Alien Alarm (long)', 'alien'],
- ['Climb (long)', 'climb'],
- ['Persistent (long)', 'persistent'],
- ['Pushover Echo (long)', 'echo'],
- ['Up Down (long)', 'updown'],
- ['None (silent)', 'none']
- ]
- }
- ]
- end
-
def self.supported_events
%w(push)
end