mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-05 20:51:15 -07:00
parent
2a1bf7847b
commit
ebe570d42f
5 changed files with 54 additions and 34 deletions
|
@ -79,7 +79,6 @@ select.form-control {
|
|||
color: #eee !important;
|
||||
border: 0px solid #444 !important;
|
||||
background: #555 !important;
|
||||
padding: 1px 2px;
|
||||
transition: background-color .3s;
|
||||
}
|
||||
.selectize-control.form-control .selectize-input {
|
||||
|
@ -87,7 +86,6 @@ select.form-control {
|
|||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 4px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
.selectize-control.form-control.selectize-pms-ip .selectize-input {
|
||||
padding-left: 12px !important;
|
||||
|
|
|
@ -142,8 +142,10 @@
|
|||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<select class="form-control" id="${item['name']}" name="${item['name']}">
|
||||
% if item['select_all']:
|
||||
<option value="select-all">Select All</option>
|
||||
<option value="remove-all">Remove All</option>
|
||||
% endif
|
||||
% if isinstance(item['select_options'], dict):
|
||||
% for section, options in item['select_options'].items():
|
||||
<optgroup label="${section}">
|
||||
|
@ -153,7 +155,9 @@
|
|||
</optgroup>
|
||||
% endfor
|
||||
% else:
|
||||
% if item['select_all']:
|
||||
<option value="border-all"></option>
|
||||
% endif
|
||||
% for option in sorted(item['select_options'], key=lambda x: x['text'].lower()):
|
||||
<option value="${option['value']}">${option['text']}</option>
|
||||
% endfor
|
||||
|
|
|
@ -134,8 +134,10 @@
|
|||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<select class="form-control" id="${item['name']}" name="${item['name']}">
|
||||
% if item['select_all']:
|
||||
<option value="select-all">Select All</option>
|
||||
<option value="remove-all">Remove All</option>
|
||||
% endif
|
||||
% if isinstance(item['select_options'], dict):
|
||||
% for section, options in item['select_options'].items():
|
||||
<optgroup label="${section}">
|
||||
|
@ -145,7 +147,9 @@
|
|||
</optgroup>
|
||||
% endfor
|
||||
% else:
|
||||
% if item['select_all']:
|
||||
<option value="border-all"></option>
|
||||
% endif
|
||||
% for option in sorted(item['select_options'], key=lambda x: x['text'].lower()):
|
||||
<option value="${option['value']}">${option['text']}</option>
|
||||
% endfor
|
||||
|
@ -718,6 +722,12 @@
|
|||
$('#pushover_priority').change( function () {
|
||||
pushoverPriority();
|
||||
});
|
||||
|
||||
var $pushover_sound = $('#pushover_sound').selectize({
|
||||
create: true
|
||||
});
|
||||
var pushover_sound = $pushover_sound[0].selectize;
|
||||
pushover_sound.setValue(${json.dumps(next((c['value'] for c in notifier['config_options'] if c['name'] == 'pushover_sound'), [])) | n});
|
||||
|
||||
% elif notifier['agent_name'] == 'plexmobileapp':
|
||||
var $plexmobileapp_user_ids = $('#plexmobileapp_user_ids').selectize({
|
||||
|
|
|
@ -971,7 +971,8 @@ class RecentlyAdded(Newsletter):
|
|||
'description': 'Select the libraries to include in the newsletter.',
|
||||
'name': 'newsletter_config_incl_libraries',
|
||||
'input_type': 'selectize',
|
||||
'select_options': self._get_sections_options()
|
||||
'select_options': self._get_sections_options(),
|
||||
'select_all': True
|
||||
}
|
||||
]
|
||||
|
||||
|
|
|
@ -1435,21 +1435,24 @@ class EMAIL(Notifier):
|
|||
'name': 'email_to',
|
||||
'description': 'The email address(es) of the recipients.',
|
||||
'input_type': 'selectize',
|
||||
'select_options': user_emails_to
|
||||
'select_options': user_emails_to,
|
||||
'select_all': True
|
||||
},
|
||||
{'label': 'CC',
|
||||
'value': self.config['cc'],
|
||||
'name': 'email_cc',
|
||||
'description': 'The email address(es) to CC.',
|
||||
'input_type': 'selectize',
|
||||
'select_options': user_emails_cc
|
||||
'select_options': user_emails_cc,
|
||||
'select_all': True
|
||||
},
|
||||
{'label': 'BCC',
|
||||
'value': self.config['bcc'],
|
||||
'name': 'email_bcc',
|
||||
'description': 'The email address(es) to BCC.',
|
||||
'input_type': 'selectize',
|
||||
'select_options': user_emails_bcc
|
||||
'select_options': user_emails_bcc,
|
||||
'select_all': True
|
||||
},
|
||||
{'label': 'SMTP Server',
|
||||
'value': self.config['smtp_server'],
|
||||
|
@ -3216,31 +3219,34 @@ class PUSHOVER(Notifier):
|
|||
return self.make_request('https://api.pushover.net/1/messages.json', headers=headers, data=data, files=files)
|
||||
|
||||
def get_sounds(self):
|
||||
sounds = {
|
||||
'': '',
|
||||
'alien': 'Alien Alarm (long)',
|
||||
'bike': 'Bike',
|
||||
'bugle': 'Bugle',
|
||||
'cashregister': 'Cash Register',
|
||||
'classical': 'Classical',
|
||||
'climb': 'Climb (long)',
|
||||
'cosmic': 'Cosmic',
|
||||
'echo': 'Pushover Echo (long)',
|
||||
'falling': 'Falling',
|
||||
'gamelan': 'Gamelan',
|
||||
'incoming': 'Incoming',
|
||||
'intermission': 'Intermission',
|
||||
'magic': 'Magic',
|
||||
'mechanical': 'Mechanical',
|
||||
'none': 'None (silent)',
|
||||
'persistent': 'Persistent (long)',
|
||||
'pianobar': 'Piano Bar',
|
||||
'pushover': 'Pushover (default)',
|
||||
'siren': 'Siren',
|
||||
'spacealarm': 'Space Alarm',
|
||||
'tugboat': 'Tug Boat',
|
||||
'updown': 'Up Down (long)'
|
||||
}
|
||||
sounds = [
|
||||
{'value': '', 'text': ''},
|
||||
{'value': 'alien', 'text': 'Alien Alarm (long)'},
|
||||
{'value': 'bike', 'text': 'Bike'},
|
||||
{'value': 'bugle', 'text': 'Bugle'},
|
||||
{'value': 'cashregister', 'text': 'Cash Register'},
|
||||
{'value': 'classical', 'text': 'Classical'},
|
||||
{'value': 'climb', 'text': 'Climb (long)'},
|
||||
{'value': 'cosmic', 'text': 'Cosmic'},
|
||||
{'value': 'echo', 'text': 'Pushover Echo (long)'},
|
||||
{'value': 'falling', 'text': 'Falling'},
|
||||
{'value': 'gamelan', 'text': 'Gamelan'},
|
||||
{'value': 'incoming', 'text': 'Incoming'},
|
||||
{'value': 'intermission', 'text': 'Intermission'},
|
||||
{'value': 'magic', 'text': 'Magic'},
|
||||
{'value': 'mechanical', 'text': 'Mechanical'},
|
||||
{'value': 'none', 'text': 'None (silent)'},
|
||||
{'value': 'persistent', 'text': 'Persistent (long)'},
|
||||
{'value': 'pianobar', 'text': 'Piano Bar'},
|
||||
{'value': 'pushover', 'text': 'Pushover (default)'},
|
||||
{'value': 'siren', 'text': 'Siren'},
|
||||
{'value': 'spacealarm', 'text': 'Space Alarm'},
|
||||
{'value': 'tugboat', 'text': 'Tug Boat'},
|
||||
{'value': 'updown', 'text': 'Up Down (long)'},
|
||||
{'value': 'vibrate', 'text': 'Vibrate Only'},
|
||||
]
|
||||
if self.config['sound'] not in [s['value'] for s in sounds]:
|
||||
sounds.append({'value': self.config['sound'], 'text': self.config['sound']})
|
||||
|
||||
return sounds
|
||||
|
||||
|
@ -3281,9 +3287,10 @@ class PUSHOVER(Notifier):
|
|||
{'label': 'Sound',
|
||||
'value': self.config['sound'],
|
||||
'name': 'pushover_sound',
|
||||
'description': 'Set the notification sound. Leave blank for the default sound.',
|
||||
'input_type': 'select',
|
||||
'select_options': self.get_sounds()
|
||||
'description': 'Select a notification sound or enter a custom sound name. Leave blank for the default sound.',
|
||||
'input_type': 'selectize',
|
||||
'select_options': self.get_sounds(),
|
||||
'select_all': False
|
||||
},
|
||||
{'label': 'Priority',
|
||||
'value': self.config['priority'],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue