From 42c214b0255166643949cad808b16e15ddb27e27 Mon Sep 17 00:00:00 2001 From: Imon Daneshmand Date: Wed, 27 May 2020 18:13:17 -0700 Subject: [PATCH 1/2] Add the ability to modify the Discord Bot Username. --- medusa/__main__.py | 2 ++ medusa/server/api/v2/config.py | 2 ++ tests/apiv2/test_config.py | 1 + themes-default/slim/src/components/config-notifications.vue | 1 + 4 files changed, 6 insertions(+) diff --git a/medusa/__main__.py b/medusa/__main__.py index db55f04627..81edc73ce2 100755 --- a/medusa/__main__.py +++ b/medusa/__main__.py @@ -753,6 +753,7 @@ def initialize(self, console_logging=True): check_setting_int(app.CFG, 'Discord', 'discord_notify_onsubtitledownload', 0)) app.DISCORD_WEBHOOK = check_setting_str(app.CFG, 'Discord', 'discord_webhook', '', censor_log='normal') app.DISCORD_TTS = check_setting_bool(app.CFG, 'Discord', 'discord_tts', 0) + app.DISCORD_NAME = check_setting_str(app.CFG, 'Discord', 'discord_name', '', censor_log='normal') app.USE_PROWL = bool(check_setting_int(app.CFG, 'Prowl', 'use_prowl', 0)) app.PROWL_NOTIFY_ONSNATCH = bool(check_setting_int(app.CFG, 'Prowl', 'prowl_notify_onsnatch', 0)) @@ -1756,6 +1757,7 @@ def save_config(): new_config['Discord']['discord_notify_onsubtitledownload'] = int(app.DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD) new_config['Discord']['discord_webhook'] = app.DISCORD_WEBHOOK new_config['Discord']['discord_tts'] = int(app.DISCORD_TTS) + new_config['Discord']['discord_name'] = app.DISCORD_NAME new_config['Prowl'] = {} new_config['Prowl']['use_prowl'] = int(app.USE_PROWL) diff --git a/medusa/server/api/v2/config.py b/medusa/server/api/v2/config.py index 058bb61e40..d4e357703b 100644 --- a/medusa/server/api/v2/config.py +++ b/medusa/server/api/v2/config.py @@ -401,6 +401,7 @@ class ConfigHandler(BaseRequestHandler): 'notifiers.discord.notifyOnSnatch': BooleanField(app, 'DISCORD_NOTIFY_ONSNATCH'), 'notifiers.discord.notifyOnDownload': BooleanField(app, 'DISCORD_NOTIFY_ONDOWNLOAD'), 'notifiers.discord.notifyOnSubtitleDownload': BooleanField(app, 'DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD'), + 'notifiers.discord.name': StringField(app, 'DISCORD_NAME'), 'notifiers.twitter.enabled': BooleanField(app, 'USE_TWITTER'), 'notifiers.twitter.dmto': StringField(app, 'TWITTER_DMTO'), @@ -965,6 +966,7 @@ def data_notifiers(): section_data['discord']['notifyOnSubtitleDownload'] = bool(app.DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD) section_data['discord']['webhook'] = app.DISCORD_WEBHOOK section_data['discord']['tts'] = bool(app.DISCORD_TTS) + section_data['discord']['name'] = app.DISCORD_NAME section_data['twitter'] = {} section_data['twitter']['enabled'] = bool(app.USE_TWITTER) diff --git a/tests/apiv2/test_config.py b/tests/apiv2/test_config.py index 951f166fcd..4d92591a3e 100644 --- a/tests/apiv2/test_config.py +++ b/tests/apiv2/test_config.py @@ -637,6 +637,7 @@ def config_notifiers(): section_data['discord']['notifyOnSubtitleDownload'] = bool(app.DISCORD_NOTIFY_ONSUBTITLEDOWNLOAD) section_data['discord']['webhook'] = app.DISCORD_WEBHOOK section_data['discord']['tts'] = bool(app.DISCORD_TTS) + section_data['discord']['name'] = app.DISCORD_NAME section_data['twitter'] = {} section_data['twitter']['enabled'] = bool(app.USE_TWITTER) diff --git a/themes-default/slim/src/components/config-notifications.vue b/themes-default/slim/src/components/config-notifications.vue index f5578822bd..81a7607af9 100644 --- a/themes-default/slim/src/components/config-notifications.vue +++ b/themes-default/slim/src/components/config-notifications.vue @@ -652,6 +652,7 @@ +
Click below to test your settings.
From c6eeaf3ed44d6b404a58cd3b08085880311bafbe Mon Sep 17 00:00:00 2001 From: Dario Date: Wed, 3 Jun 2020 17:29:00 +0200 Subject: [PATCH 2/2] yarn dev --- themes/dark/assets/js/medusa-runtime.js | 4 ++-- themes/light/assets/js/medusa-runtime.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/themes/dark/assets/js/medusa-runtime.js b/themes/dark/assets/js/medusa-runtime.js index a3e17bc5cb..9d8a22f348 100644 --- a/themes/dark/assets/js/medusa-runtime.js +++ b/themes/dark/assets/js/medusa-runtime.js @@ -104,7 +104,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(f /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api.js */ \"./src/api.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ \"./src/components/helpers/index.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'config-notifications',\n components: {\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"AppLink\"],\n ConfigTemplate: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTemplate\"],\n ConfigTextbox: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTextbox\"],\n ConfigTextboxNumber: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTextboxNumber\"],\n ConfigToggleSlider: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigToggleSlider\"],\n SelectList: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"SelectList\"],\n ShowSelector: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ShowSelector\"]\n },\n\n data() {\n return {\n prowlSelectedShow: null,\n prowlSelectedShowApiKeys: [],\n prowlPriorityOptions: [{\n text: 'Very Low',\n value: -2\n }, {\n text: 'Moderate',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverPriorityOptions: [{\n text: 'Lowest',\n value: -2\n }, {\n text: 'Low',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverSoundOptions: [{\n text: 'Default',\n value: 'default'\n }, {\n text: 'Pushover',\n value: 'pushover'\n }, {\n text: 'Bike',\n value: 'bike'\n }, {\n text: 'Bugle',\n value: 'bugle'\n }, {\n text: 'Cash Register',\n value: 'cashregister'\n }, {\n text: 'classical',\n value: 'classical'\n }, {\n text: 'Cosmic',\n value: 'cosmic'\n }, {\n text: 'Falling',\n value: 'falling'\n }, {\n text: 'Gamelan',\n value: 'gamelan'\n }, {\n text: 'Incoming',\n value: 'incoming'\n }, {\n text: 'Intermission',\n value: 'intermission'\n }, {\n text: 'Magic',\n value: 'magic'\n }, {\n text: 'Mechanical',\n value: 'mechanical'\n }, {\n text: 'Piano Bar',\n value: 'pianobar'\n }, {\n text: 'Siren',\n value: 'siren'\n }, {\n text: 'Space Alarm',\n value: 'spacealarm'\n }, {\n text: 'Tug Boat',\n value: 'tugboat'\n }, {\n text: 'Alien Alarm (long)',\n value: 'alien'\n }, {\n text: 'Climb (long)',\n value: 'climb'\n }, {\n text: 'Persistent (long)',\n value: 'persistant'\n }, {\n text: 'Pushover Echo (long)',\n value: 'echo'\n }, {\n text: 'Up Down (long)',\n value: 'updown'\n }, {\n text: 'None (silent)',\n value: 'none'\n }],\n pushbulletDeviceOptions: [{\n text: 'All devices',\n value: ''\n }],\n traktMethodOptions: [{\n text: 'Skip all',\n value: 0\n }, {\n text: 'Download pilot only',\n value: 1\n }, {\n text: 'Get whole show',\n value: 2\n }],\n pushbulletTestInfo: 'Click below to test.',\n joinTestInfo: 'Click below to test.',\n twitterTestInfo: 'Click below to test.',\n twitterKey: '',\n emailSelectedShow: null,\n emailSelectedShowAdresses: []\n };\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])(['config', 'indexers', 'notifiers']),\n\n traktNewTokenMessage() {\n const {\n accessToken\n } = this.notifiers.trakt;\n return true ? 'New ' : undefined;\n },\n\n traktIndexersOptions() {\n const {\n indexers\n } = this;\n const {\n traktIndexers\n } = indexers.main;\n const validTraktIndexer = Object.keys(indexers.indexers).filter(k => traktIndexers[k]);\n return validTraktIndexer.map(indexer => {\n return {\n text: indexer,\n value: indexers.indexers[indexer].id\n };\n });\n }\n\n },\n\n beforeMount() {\n // Wait for the next tick, so the component is rendered\n this.$nextTick(() => {\n $('#config-components').tabs();\n });\n },\n\n mounted() {\n // TODO: vueify this.\n $('#trakt_pin').on('keyup change', () => {\n if ($('#trakt_pin').val().length === 0) {\n $('#TraktGetPin').removeClass('hide');\n $('#authTrakt').addClass('hide');\n } else {\n $('#TraktGetPin').addClass('hide');\n $('#authTrakt').removeClass('hide');\n }\n });\n },\n\n methods: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapActions\"])(['getShows', 'setConfig']),\n\n onChangeProwlApi(items) {\n this.notifiers.prowl.api = items.map(item => item.value);\n },\n\n savePerShowNotifyList(listType, values) {\n const {\n emailSelectedShow,\n prowlSelectedShow\n } = this;\n const form = new FormData();\n\n if (listType === 'prowl') {\n form.set('show', prowlSelectedShow);\n form.set('prowlAPIs', values.map(apiKey => apiKey.value));\n } else {\n form.set('show', emailSelectedShow);\n form.set('emails', values.map(apiKey => apiKey.value));\n } // Save the list\n\n\n _api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"].post('home/saveShowNotifyList', form);\n },\n\n async prowlUpdateApiKeys(selectedShow) {\n this.prowlSelectedShow = selectedShow;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].prowl_notify_list ? response.data[selectedShow].prowl_notify_list.split(',') : [];\n this.prowlSelectedShowApiKeys = selectedShow ? list : [];\n }\n },\n\n async emailUpdateShowEmail(selectedShow) {\n this.emailSelectedShow = selectedShow;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].list ? response.data[selectedShow].list.split(',') : [];\n this.emailSelectedShowAdresses = selectedShow ? list : [];\n }\n },\n\n emailUpdateAddressList(items) {\n this.notifiers.email.addressList = items.map(x => x.value);\n },\n\n async getPushbulletDeviceOptions() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/getPushbulletDevices', {\n params: {\n api: pushbulletApiKey\n }\n });\n const options = [];\n const {\n data\n } = response;\n\n if (!data) {\n return false;\n }\n\n options.push({\n text: 'All devices',\n value: ''\n });\n\n for (const device of data.devices) {\n if (device.active === true) {\n options.push({\n text: device.nickname,\n value: device.iden\n });\n }\n }\n\n this.pushbulletDeviceOptions = options;\n this.pushbulletTestInfo = 'Device list updated. Please choose a device to push to.';\n },\n\n async testPushbulletApi() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testPushbullet', {\n params: {\n api: pushbulletApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.pushbulletTestInfo = data;\n }\n },\n\n async testJoinApi() {\n const {\n api: joinApiKey\n } = this.notifiers.join;\n\n if (!joinApiKey) {\n this.joinTestInfo = 'You didn\\'t supply a Join api key';\n $('#join_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testJoin', {\n params: {\n api: joinApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.joinTestInfo = data;\n }\n },\n\n async twitterStep1() {\n this.twitterTestInfo = MEDUSA.config.loading;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/twitterStep1');\n const {\n data\n } = response;\n window.open(data);\n this.twitterTestInfo = 'Step1: Confirm Authorization';\n },\n\n async twitterStep2() {\n const twitter = {};\n const {\n twitterKey\n } = this;\n twitter.key = twitterKey;\n\n if (twitter.key) {\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/twitterStep2', {\n params: {\n key: twitter.key\n }\n });\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } else {\n this.twitterTestInfo = 'Please fill out the necessary fields above.';\n }\n },\n\n async twitterTest() {\n try {\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testTwitter');\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } catch (error) {\n this.twitterTestInfo = 'Error while trying to request for a test on the twitter api.';\n }\n },\n\n async save() {\n const {\n notifiers,\n setConfig\n } = this; // Disable the save button until we're done.\n\n this.saving = true;\n const section = 'main';\n\n try {\n await setConfig({\n section,\n config: {\n notifiers\n }\n });\n this.$snotify.success('Saved Notifiers config', 'Saved', {\n timeout: 5000\n });\n } catch (error) {\n this.$snotify.error('Error while trying to save notifiers config', 'Error');\n } finally {\n this.saving = false;\n }\n },\n\n testGrowl() {\n const growl = {};\n growl.host = $.trim($('#growl_host').val());\n growl.password = $.trim($('#growl_password').val());\n\n if (!growl.host) {\n $('#testGrowl-result').html('Please fill out the necessary fields above.');\n $('#growl_host').addClass('warning');\n return;\n }\n\n $('#growl_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testGrowl-result').html(MEDUSA.config.loading);\n $.get('home/testGrowl', {\n host: growl.host,\n password: growl.password\n }).done(data => {\n $('#testGrowl-result').html(data);\n $('#testGrowl').prop('disabled', false);\n });\n },\n\n testProwl() {\n const prowl = {};\n prowl.api = $.trim($('#prowl_api').find('input').val());\n prowl.priority = $('#prowl_priority').find('input').val();\n\n if (!prowl.api) {\n $('#testProwl-result').html('Please fill out the necessary fields above.');\n $('#prowl_api').find('input').addClass('warning');\n return;\n }\n\n $('#prowl_api').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testProwl-result').html(MEDUSA.config.loading);\n $.get('home/testProwl', {\n prowl_api: prowl.api,\n // eslint-disable-line camelcase\n prowl_priority: prowl.priority // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testProwl-result').html(data);\n $('#testProwl').prop('disabled', false);\n });\n },\n\n testKODI() {\n const kodi = {};\n const kodiHostInput = $('#kodi_host').find('input');\n const kodiHosts = kodiHostInput.toArray().map(value => value.value).filter(item => item !== '');\n kodi.host = kodiHosts.join(',');\n kodi.username = $.trim($('#kodi_username').val());\n kodi.password = $.trim($('#kodi_password').val());\n\n if (!kodi.host) {\n $('#testKODI-result').html('Please fill out the necessary fields above.');\n $('#kodi_host').find('input').addClass('warning');\n return;\n }\n\n $('#kodi_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testKODI-result').html(MEDUSA.config.loading);\n $.get('home/testKODI', {\n host: kodi.host,\n username: kodi.username,\n password: kodi.password\n }).done(data => {\n $('#testKODI-result').html(data);\n $('#testKODI').prop('disabled', false);\n });\n },\n\n testPHT() {\n const plex = {};\n plex.client = {};\n const plexHostsInput = $('#plex_client_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.client.host = plexHosts.join(',');\n plex.client.username = $.trim($('#plex_client_username').val());\n plex.client.password = $.trim($('#plex_client_password').val());\n\n if (!plex.client.host) {\n $('#testPHT-result').html('Please fill out the necessary fields above.');\n $('#plex_client_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_client_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPHT-result').html(MEDUSA.config.loading);\n $.get('home/testPHT', {\n host: plex.client.host,\n username: plex.client.username,\n password: plex.client.password\n }).done(data => {\n $('#testPHT-result').html(data);\n $('#testPHT').prop('disabled', false);\n });\n },\n\n testPMS() {\n const plex = {};\n plex.server = {};\n const plexHostsInput = $('#plex_server_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.server.host = plexHosts.join(',');\n plex.server.username = $.trim($('#plex_server_username').val());\n plex.server.password = $.trim($('#plex_server_password').val());\n plex.server.token = $.trim($('#plex_server_token').val());\n\n if (!plex.server.host) {\n $('#testPMS-result').html('Please fill out the necessary fields above.');\n $('#plex_server_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_server_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPMS-result').html(MEDUSA.config.loading);\n $.get('home/testPMS', {\n host: plex.server.host,\n username: plex.server.username,\n password: plex.server.password,\n plex_server_token: plex.server.token // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testPMS-result').html(data);\n $('#testPMS').prop('disabled', false);\n });\n },\n\n testEMBY() {\n const emby = {};\n emby.host = $('#emby_host').val();\n emby.apikey = $('#emby_apikey').val();\n\n if (!emby.host || !emby.apikey) {\n $('#testEMBY-result').html('Please fill out the necessary fields above.');\n $('#emby_host').addRemoveWarningClass(emby.host);\n $('#emby_apikey').addRemoveWarningClass(emby.apikey);\n return;\n }\n\n $('#emby_host,#emby_apikey').children('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testEMBY-result').html(MEDUSA.config.loading);\n $.get('home/testEMBY', {\n host: emby.host,\n emby_apikey: emby.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testEMBY-result').html(data);\n $('#testEMBY').prop('disabled', false);\n });\n },\n\n testBoxcar2() {\n const boxcar2 = {};\n boxcar2.accesstoken = $.trim($('#boxcar2_accesstoken').val());\n\n if (!boxcar2.accesstoken) {\n $('#testBoxcar2-result').html('Please fill out the necessary fields above.');\n $('#boxcar2_accesstoken').addClass('warning');\n return;\n }\n\n $('#boxcar2_accesstoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testBoxcar2-result').html(MEDUSA.config.loading);\n $.get('home/testBoxcar2', {\n accesstoken: boxcar2.accesstoken\n }).done(data => {\n $('#testBoxcar2-result').html(data);\n $('#testBoxcar2').prop('disabled', false);\n });\n },\n\n testPushover() {\n const pushover = {};\n pushover.userkey = $('#pushover_userkey').val();\n pushover.apikey = $('#pushover_apikey').val();\n\n if (!pushover.userkey || !pushover.apikey) {\n $('#testPushover-result').html('Please fill out the necessary fields above.');\n $('#pushover_userkey').addRemoveWarningClass(pushover.userkey);\n $('#pushover_apikey').addRemoveWarningClass(pushover.apikey);\n return;\n }\n\n $('#pushover_userkey,#pushover_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushover-result').html(MEDUSA.config.loading);\n $.get('home/testPushover', {\n userKey: pushover.userkey,\n apiKey: pushover.apikey\n }).done(data => {\n $('#testPushover-result').html(data);\n $('#testPushover').prop('disabled', false);\n });\n },\n\n testLibnotify() {\n $('#testLibnotify-result').html(MEDUSA.config.loading);\n $.get('home/testLibnotify', data => {\n $('#testLibnotify-result').html(data);\n });\n },\n\n settingsNMJ() {\n const nmj = {};\n nmj.host = $('#nmj_host').val();\n\n if (nmj.host) {\n $('#testNMJ-result').html(MEDUSA.config.loading);\n $.get('home/settingsNMJ', {\n host: nmj.host\n }, data => {\n if (data === null) {\n $('#nmj_database').removeAttr('readonly');\n $('#nmj_mount').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJ-result').html(JSONData.message);\n $('#nmj_database').val(JSONData.database);\n $('#nmj_mount').val(JSONData.mount);\n\n if (JSONData.database) {\n $('#nmj_database').prop('readonly', true);\n } else {\n $('#nmj_database').removeAttr('readonly');\n }\n\n if (JSONData.mount) {\n $('#nmj_mount').prop('readonly', true);\n } else {\n $('#nmj_mount').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmj_host').focus();\n }\n },\n\n testNMJ() {\n const nmj = {};\n nmj.host = $.trim($('#nmj_host').val());\n nmj.database = $('#nmj_database').val();\n nmj.mount = $('#nmj_mount').val();\n\n if (nmj.host) {\n $('#nmj_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJ-result').html(MEDUSA.config.loading);\n $.get('home/testNMJ', {\n host: nmj.host,\n database: nmj.database,\n mount: nmj.mount\n }).done(data => {\n $('#testNMJ-result').html(data);\n $('#testNMJ').prop('disabled', false);\n });\n } else {\n $('#testNMJ-result').html('Please fill out the necessary fields above.');\n $('#nmj_host').addClass('warning');\n }\n },\n\n settingsNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $('#nmjv2_host').val();\n\n if (nmjv2.host) {\n $('#testNMJv2-result').html(MEDUSA.config.loading);\n nmjv2.dbloc = '';\n const radios = document.getElementsByName('nmjv2_dbloc');\n\n for (let i = 0, len = radios.length; i < len; i++) {\n if (radios[i].checked) {\n nmjv2.dbloc = radios[i].value;\n break;\n }\n }\n\n nmjv2.dbinstance = $('#NMJv2db_instance').val();\n $.get('home/settingsNMJv2', {\n host: nmjv2.host,\n dbloc: nmjv2.dbloc,\n instance: nmjv2.dbinstance\n }, data => {\n if (data === null) {\n $('#nmjv2_database').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJv2-result').html(JSONData.message);\n $('#nmjv2_database').val(JSONData.database);\n\n if (JSONData.database) {\n $('#nmjv2_database').prop('readonly', true);\n } else {\n $('#nmjv2_database').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmjv2_host').focus();\n }\n },\n\n testNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $.trim($('#nmjv2_host').val());\n\n if (nmjv2.host) {\n $('#nmjv2_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJv2-result').html(MEDUSA.config.loading);\n $.get('home/testNMJv2', {\n host: nmjv2.host\n }).done(data => {\n $('#testNMJv2-result').html(data);\n $('#testNMJv2').prop('disabled', false);\n });\n } else {\n $('#testNMJv2-result').html('Please fill out the necessary fields above.');\n $('#nmjv2_host').addClass('warning');\n }\n },\n\n testFreeMobile() {\n const freemobile = {};\n freemobile.id = $.trim($('#freemobile_id').val());\n freemobile.apikey = $.trim($('#freemobile_apikey').val());\n\n if (!freemobile.id || !freemobile.apikey) {\n $('#testFreeMobile-result').html('Please fill out the necessary fields above.');\n\n if (freemobile.id) {\n $('#freemobile_id').removeClass('warning');\n } else {\n $('#freemobile_id').addClass('warning');\n }\n\n if (freemobile.apikey) {\n $('#freemobile_apikey').removeClass('warning');\n } else {\n $('#freemobile_apikey').addClass('warning');\n }\n\n return;\n }\n\n $('#freemobile_id,#freemobile_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testFreeMobile-result').html(MEDUSA.config.loading);\n $.get('home/testFreeMobile', {\n freemobile_id: freemobile.id,\n // eslint-disable-line camelcase\n freemobile_apikey: freemobile.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testFreeMobile-result').html(data);\n $('#testFreeMobile').prop('disabled', false);\n });\n },\n\n testTelegram() {\n const telegram = {};\n telegram.id = $.trim($('#telegram_id').val());\n telegram.apikey = $.trim($('#telegram_apikey').val());\n\n if (!telegram.id || !telegram.apikey) {\n $('#testTelegram-result').html('Please fill out the necessary fields above.');\n $('#telegram_id').addRemoveWarningClass(telegram.id);\n $('#telegram_apikey').addRemoveWarningClass(telegram.apikey);\n return;\n }\n\n $('#telegram_id,#telegram_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTelegram-result').html(MEDUSA.config.loading);\n $.get('home/testTelegram', {\n telegram_id: telegram.id,\n // eslint-disable-line camelcase\n telegram_apikey: telegram.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTelegram-result').html(data);\n $('#testTelegram').prop('disabled', false);\n });\n },\n\n testDiscord() {\n const {\n notifiers\n } = this;\n\n if (!notifiers.discord.webhook) {\n $('#testDiscord-result').html('Please fill out the necessary fields above.');\n $('#discord_webhook').addRemoveWarningClass(notifiers.discord.webhook);\n return;\n }\n\n $('#discord_id,#discord_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testDiscord-result').html(MEDUSA.config.loading);\n $.get('home/testDiscord', {\n discord_webhook: notifiers.discord.webhook,\n // eslint-disable-line camelcase\n discord_tts: notifiers.discord.tts // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testDiscord-result').html(data);\n $('#testDiscord').prop('disabled', false);\n });\n },\n\n testSlack() {\n const slack = {};\n slack.webhook = $.trim($('#slack_webhook').val());\n\n if (!slack.webhook) {\n $('#testSlack-result').html('Please fill out the necessary fields above.');\n $('#slack_webhook').addRemoveWarningClass(slack.webhook);\n return;\n }\n\n $('#slack_webhook').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testSlack-result').html(MEDUSA.config.loading);\n $.get('home/testslack', {\n slack_webhook: slack.webhook // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testSlack-result').html(data);\n $('#testSlack').prop('disabled', false);\n });\n },\n\n TraktGetPin() {\n window.open($('#trakt_pin_url').val(), 'popUp', 'toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550');\n $('#trakt_pin').prop('disabled', false);\n },\n\n authTrakt() {\n const trakt = {};\n trakt.pin = $('#trakt_pin').val();\n\n if (trakt.pin.length !== 0) {\n $.get('home/getTraktToken', {\n trakt_pin: trakt.pin // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTrakt-result').html(data);\n $('#authTrakt').addClass('hide');\n $('#trakt_pin').prop('disabled', true);\n $('#trakt_pin').val('');\n $('#TraktGetPin').removeClass('hide');\n });\n }\n },\n\n testTrakt() {\n const trakt = {};\n trakt.username = $.trim($('#trakt_username').val());\n trakt.trendingBlacklist = $.trim($('#trakt_blacklist_name').val());\n\n if (!trakt.username) {\n $('#testTrakt-result').html('Please fill out the necessary fields above.');\n $('#trakt_username').addRemoveWarningClass(trakt.username);\n return;\n }\n\n if (/\\s/g.test(trakt.trendingBlacklist)) {\n $('#testTrakt-result').html('Check blacklist name; the value needs to be a trakt slug');\n $('#trakt_blacklist_name').addClass('warning');\n return;\n }\n\n $('#trakt_username').removeClass('warning');\n $('#trakt_blacklist_name').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTrakt-result').html(MEDUSA.config.loading);\n $.get('home/testTrakt', {\n username: trakt.username,\n blacklist_name: trakt.trendingBlacklist // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTrakt-result').html(data);\n $('#testTrakt').prop('disabled', false);\n });\n },\n\n traktForceSync() {\n $('#testTrakt-result').html(MEDUSA.config.loading);\n $.getJSON('home/forceTraktSync', data => {\n $('#testTrakt-result').html(data.result);\n });\n },\n\n testEmail() {\n let to = '';\n const status = $('#testEmail-result');\n status.html(MEDUSA.config.loading);\n let host = $('#email_host').val();\n host = host.length > 0 ? host : null;\n let port = $('#email_port').val();\n port = port.length > 0 ? port : null;\n const tls = $('#email_tls').find('input').is(':checked') ? 1 : 0;\n let from = $('#email_from').val();\n from = from.length > 0 ? from : 'root@localhost';\n const user = $('#email_username').val().trim();\n const pwd = $('#email_password').val();\n let err = '';\n\n if (host === null) {\n err += '
  • You must specify an SMTP hostname!
  • ';\n }\n\n if (port === null) {\n err += '
  • You must specify an SMTP port!
  • ';\n } else if (port.match(/^\\d+$/) === null || Number.parseInt(port, 10) > 65535) {\n err += '
  • SMTP port must be between 0 and 65535!
  • ';\n }\n\n if (err.length > 0) {\n err = '
      ' + err + '
    ';\n status.html(err);\n } else {\n to = prompt('Enter an email address to send the test to:', null); // eslint-disable-line no-alert\n\n if (to === null || to.length === 0 || to.match(/.*@.*/) === null) {\n status.html('

    You must provide a recipient email address!

    ');\n } else {\n $.get('home/testEmail', {\n host,\n port,\n smtp_from: from,\n // eslint-disable-line camelcase\n use_tls: tls,\n // eslint-disable-line camelcase\n user,\n pwd,\n to\n }, msg => {\n $('#testEmail-result').html(msg);\n });\n }\n }\n },\n\n testPushalot() {\n const pushalot = {};\n pushalot.authToken = $.trim($('#pushalot_authorizationtoken').val());\n\n if (!pushalot.authToken) {\n $('#testPushalot-result').html('Please fill out the necessary fields above.');\n $('#pushalot_authorizationtoken').addClass('warning');\n return;\n }\n\n $('#pushalot_authorizationtoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushalot-result').html(MEDUSA.config.loading);\n $.get('home/testPushalot', {\n authorizationToken: pushalot.authToken\n }).done(data => {\n $('#testPushalot-result').html(data);\n $('#testPushalot').prop('disabled', false);\n });\n }\n\n }\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\")))\n\n//# sourceURL=webpack:///./src/components/config-notifications.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api.js */ \"./src/api.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ \"./src/components/helpers/index.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'config-notifications',\n components: {\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"AppLink\"],\n ConfigTemplate: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTemplate\"],\n ConfigTextbox: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTextbox\"],\n ConfigTextboxNumber: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTextboxNumber\"],\n ConfigToggleSlider: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigToggleSlider\"],\n SelectList: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"SelectList\"],\n ShowSelector: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ShowSelector\"]\n },\n\n data() {\n return {\n prowlSelectedShow: null,\n prowlSelectedShowApiKeys: [],\n prowlPriorityOptions: [{\n text: 'Very Low',\n value: -2\n }, {\n text: 'Moderate',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverPriorityOptions: [{\n text: 'Lowest',\n value: -2\n }, {\n text: 'Low',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverSoundOptions: [{\n text: 'Default',\n value: 'default'\n }, {\n text: 'Pushover',\n value: 'pushover'\n }, {\n text: 'Bike',\n value: 'bike'\n }, {\n text: 'Bugle',\n value: 'bugle'\n }, {\n text: 'Cash Register',\n value: 'cashregister'\n }, {\n text: 'classical',\n value: 'classical'\n }, {\n text: 'Cosmic',\n value: 'cosmic'\n }, {\n text: 'Falling',\n value: 'falling'\n }, {\n text: 'Gamelan',\n value: 'gamelan'\n }, {\n text: 'Incoming',\n value: 'incoming'\n }, {\n text: 'Intermission',\n value: 'intermission'\n }, {\n text: 'Magic',\n value: 'magic'\n }, {\n text: 'Mechanical',\n value: 'mechanical'\n }, {\n text: 'Piano Bar',\n value: 'pianobar'\n }, {\n text: 'Siren',\n value: 'siren'\n }, {\n text: 'Space Alarm',\n value: 'spacealarm'\n }, {\n text: 'Tug Boat',\n value: 'tugboat'\n }, {\n text: 'Alien Alarm (long)',\n value: 'alien'\n }, {\n text: 'Climb (long)',\n value: 'climb'\n }, {\n text: 'Persistent (long)',\n value: 'persistant'\n }, {\n text: 'Pushover Echo (long)',\n value: 'echo'\n }, {\n text: 'Up Down (long)',\n value: 'updown'\n }, {\n text: 'None (silent)',\n value: 'none'\n }],\n pushbulletDeviceOptions: [{\n text: 'All devices',\n value: ''\n }],\n traktMethodOptions: [{\n text: 'Skip all',\n value: 0\n }, {\n text: 'Download pilot only',\n value: 1\n }, {\n text: 'Get whole show',\n value: 2\n }],\n pushbulletTestInfo: 'Click below to test.',\n joinTestInfo: 'Click below to test.',\n twitterTestInfo: 'Click below to test.',\n twitterKey: '',\n emailSelectedShow: null,\n emailSelectedShowAdresses: []\n };\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])(['config', 'indexers', 'notifiers']),\n\n traktNewTokenMessage() {\n const {\n accessToken\n } = this.notifiers.trakt;\n return true ? 'New ' : undefined;\n },\n\n traktIndexersOptions() {\n const {\n indexers\n } = this;\n const {\n traktIndexers\n } = indexers.main;\n const validTraktIndexer = Object.keys(indexers.indexers).filter(k => traktIndexers[k]);\n return validTraktIndexer.map(indexer => {\n return {\n text: indexer,\n value: indexers.indexers[indexer].id\n };\n });\n }\n\n },\n\n beforeMount() {\n // Wait for the next tick, so the component is rendered\n this.$nextTick(() => {\n $('#config-components').tabs();\n });\n },\n\n mounted() {\n // TODO: vueify this.\n $('#trakt_pin').on('keyup change', () => {\n if ($('#trakt_pin').val().length === 0) {\n $('#TraktGetPin').removeClass('hide');\n $('#authTrakt').addClass('hide');\n } else {\n $('#TraktGetPin').addClass('hide');\n $('#authTrakt').removeClass('hide');\n }\n });\n },\n\n methods: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapActions\"])(['getShows', 'setConfig']),\n\n onChangeProwlApi(items) {\n this.notifiers.prowl.api = items.map(item => item.value);\n },\n\n savePerShowNotifyList(listType, values) {\n const {\n emailSelectedShow,\n prowlSelectedShow\n } = this;\n const form = new FormData();\n\n if (listType === 'prowl') {\n form.set('show', prowlSelectedShow);\n form.set('prowlAPIs', values.map(apiKey => apiKey.value));\n } else {\n form.set('show', emailSelectedShow);\n form.set('emails', values.map(apiKey => apiKey.value));\n } // Save the list\n\n\n _api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"].post('home/saveShowNotifyList', form);\n },\n\n async prowlUpdateApiKeys(selectedShow) {\n this.prowlSelectedShow = selectedShow;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].prowl_notify_list ? response.data[selectedShow].prowl_notify_list.split(',') : [];\n this.prowlSelectedShowApiKeys = selectedShow ? list : [];\n }\n },\n\n async emailUpdateShowEmail(selectedShow) {\n this.emailSelectedShow = selectedShow;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].list ? response.data[selectedShow].list.split(',') : [];\n this.emailSelectedShowAdresses = selectedShow ? list : [];\n }\n },\n\n emailUpdateAddressList(items) {\n this.notifiers.email.addressList = items.map(x => x.value);\n },\n\n async getPushbulletDeviceOptions() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/getPushbulletDevices', {\n params: {\n api: pushbulletApiKey\n }\n });\n const options = [];\n const {\n data\n } = response;\n\n if (!data) {\n return false;\n }\n\n options.push({\n text: 'All devices',\n value: ''\n });\n\n for (const device of data.devices) {\n if (device.active === true) {\n options.push({\n text: device.nickname,\n value: device.iden\n });\n }\n }\n\n this.pushbulletDeviceOptions = options;\n this.pushbulletTestInfo = 'Device list updated. Please choose a device to push to.';\n },\n\n async testPushbulletApi() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testPushbullet', {\n params: {\n api: pushbulletApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.pushbulletTestInfo = data;\n }\n },\n\n async testJoinApi() {\n const {\n api: joinApiKey\n } = this.notifiers.join;\n\n if (!joinApiKey) {\n this.joinTestInfo = 'You didn\\'t supply a Join api key';\n $('#join_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testJoin', {\n params: {\n api: joinApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.joinTestInfo = data;\n }\n },\n\n async twitterStep1() {\n this.twitterTestInfo = MEDUSA.config.loading;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/twitterStep1');\n const {\n data\n } = response;\n window.open(data);\n this.twitterTestInfo = 'Step1: Confirm Authorization';\n },\n\n async twitterStep2() {\n const twitter = {};\n const {\n twitterKey\n } = this;\n twitter.key = twitterKey;\n\n if (twitter.key) {\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/twitterStep2', {\n params: {\n key: twitter.key\n }\n });\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } else {\n this.twitterTestInfo = 'Please fill out the necessary fields above.';\n }\n },\n\n async twitterTest() {\n try {\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testTwitter');\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } catch (error) {\n this.twitterTestInfo = 'Error while trying to request for a test on the twitter api.';\n }\n },\n\n async save() {\n const {\n notifiers,\n setConfig\n } = this; // Disable the save button until we're done.\n\n this.saving = true;\n const section = 'main';\n\n try {\n await setConfig({\n section,\n config: {\n notifiers\n }\n });\n this.$snotify.success('Saved Notifiers config', 'Saved', {\n timeout: 5000\n });\n } catch (error) {\n this.$snotify.error('Error while trying to save notifiers config', 'Error');\n } finally {\n this.saving = false;\n }\n },\n\n testGrowl() {\n const growl = {};\n growl.host = $.trim($('#growl_host').val());\n growl.password = $.trim($('#growl_password').val());\n\n if (!growl.host) {\n $('#testGrowl-result').html('Please fill out the necessary fields above.');\n $('#growl_host').addClass('warning');\n return;\n }\n\n $('#growl_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testGrowl-result').html(MEDUSA.config.loading);\n $.get('home/testGrowl', {\n host: growl.host,\n password: growl.password\n }).done(data => {\n $('#testGrowl-result').html(data);\n $('#testGrowl').prop('disabled', false);\n });\n },\n\n testProwl() {\n const prowl = {};\n prowl.api = $.trim($('#prowl_api').find('input').val());\n prowl.priority = $('#prowl_priority').find('input').val();\n\n if (!prowl.api) {\n $('#testProwl-result').html('Please fill out the necessary fields above.');\n $('#prowl_api').find('input').addClass('warning');\n return;\n }\n\n $('#prowl_api').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testProwl-result').html(MEDUSA.config.loading);\n $.get('home/testProwl', {\n prowl_api: prowl.api,\n // eslint-disable-line camelcase\n prowl_priority: prowl.priority // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testProwl-result').html(data);\n $('#testProwl').prop('disabled', false);\n });\n },\n\n testKODI() {\n const kodi = {};\n const kodiHostInput = $('#kodi_host').find('input');\n const kodiHosts = kodiHostInput.toArray().map(value => value.value).filter(item => item !== '');\n kodi.host = kodiHosts.join(',');\n kodi.username = $.trim($('#kodi_username').val());\n kodi.password = $.trim($('#kodi_password').val());\n\n if (!kodi.host) {\n $('#testKODI-result').html('Please fill out the necessary fields above.');\n $('#kodi_host').find('input').addClass('warning');\n return;\n }\n\n $('#kodi_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testKODI-result').html(MEDUSA.config.loading);\n $.get('home/testKODI', {\n host: kodi.host,\n username: kodi.username,\n password: kodi.password\n }).done(data => {\n $('#testKODI-result').html(data);\n $('#testKODI').prop('disabled', false);\n });\n },\n\n testPHT() {\n const plex = {};\n plex.client = {};\n const plexHostsInput = $('#plex_client_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.client.host = plexHosts.join(',');\n plex.client.username = $.trim($('#plex_client_username').val());\n plex.client.password = $.trim($('#plex_client_password').val());\n\n if (!plex.client.host) {\n $('#testPHT-result').html('Please fill out the necessary fields above.');\n $('#plex_client_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_client_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPHT-result').html(MEDUSA.config.loading);\n $.get('home/testPHT', {\n host: plex.client.host,\n username: plex.client.username,\n password: plex.client.password\n }).done(data => {\n $('#testPHT-result').html(data);\n $('#testPHT').prop('disabled', false);\n });\n },\n\n testPMS() {\n const plex = {};\n plex.server = {};\n const plexHostsInput = $('#plex_server_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.server.host = plexHosts.join(',');\n plex.server.username = $.trim($('#plex_server_username').val());\n plex.server.password = $.trim($('#plex_server_password').val());\n plex.server.token = $.trim($('#plex_server_token').val());\n\n if (!plex.server.host) {\n $('#testPMS-result').html('Please fill out the necessary fields above.');\n $('#plex_server_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_server_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPMS-result').html(MEDUSA.config.loading);\n $.get('home/testPMS', {\n host: plex.server.host,\n username: plex.server.username,\n password: plex.server.password,\n plex_server_token: plex.server.token // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testPMS-result').html(data);\n $('#testPMS').prop('disabled', false);\n });\n },\n\n testEMBY() {\n const emby = {};\n emby.host = $('#emby_host').val();\n emby.apikey = $('#emby_apikey').val();\n\n if (!emby.host || !emby.apikey) {\n $('#testEMBY-result').html('Please fill out the necessary fields above.');\n $('#emby_host').addRemoveWarningClass(emby.host);\n $('#emby_apikey').addRemoveWarningClass(emby.apikey);\n return;\n }\n\n $('#emby_host,#emby_apikey').children('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testEMBY-result').html(MEDUSA.config.loading);\n $.get('home/testEMBY', {\n host: emby.host,\n emby_apikey: emby.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testEMBY-result').html(data);\n $('#testEMBY').prop('disabled', false);\n });\n },\n\n testBoxcar2() {\n const boxcar2 = {};\n boxcar2.accesstoken = $.trim($('#boxcar2_accesstoken').val());\n\n if (!boxcar2.accesstoken) {\n $('#testBoxcar2-result').html('Please fill out the necessary fields above.');\n $('#boxcar2_accesstoken').addClass('warning');\n return;\n }\n\n $('#boxcar2_accesstoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testBoxcar2-result').html(MEDUSA.config.loading);\n $.get('home/testBoxcar2', {\n accesstoken: boxcar2.accesstoken\n }).done(data => {\n $('#testBoxcar2-result').html(data);\n $('#testBoxcar2').prop('disabled', false);\n });\n },\n\n testPushover() {\n const pushover = {};\n pushover.userkey = $('#pushover_userkey').val();\n pushover.apikey = $('#pushover_apikey').val();\n\n if (!pushover.userkey || !pushover.apikey) {\n $('#testPushover-result').html('Please fill out the necessary fields above.');\n $('#pushover_userkey').addRemoveWarningClass(pushover.userkey);\n $('#pushover_apikey').addRemoveWarningClass(pushover.apikey);\n return;\n }\n\n $('#pushover_userkey,#pushover_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushover-result').html(MEDUSA.config.loading);\n $.get('home/testPushover', {\n userKey: pushover.userkey,\n apiKey: pushover.apikey\n }).done(data => {\n $('#testPushover-result').html(data);\n $('#testPushover').prop('disabled', false);\n });\n },\n\n testLibnotify() {\n $('#testLibnotify-result').html(MEDUSA.config.loading);\n $.get('home/testLibnotify', data => {\n $('#testLibnotify-result').html(data);\n });\n },\n\n settingsNMJ() {\n const nmj = {};\n nmj.host = $('#nmj_host').val();\n\n if (nmj.host) {\n $('#testNMJ-result').html(MEDUSA.config.loading);\n $.get('home/settingsNMJ', {\n host: nmj.host\n }, data => {\n if (data === null) {\n $('#nmj_database').removeAttr('readonly');\n $('#nmj_mount').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJ-result').html(JSONData.message);\n $('#nmj_database').val(JSONData.database);\n $('#nmj_mount').val(JSONData.mount);\n\n if (JSONData.database) {\n $('#nmj_database').prop('readonly', true);\n } else {\n $('#nmj_database').removeAttr('readonly');\n }\n\n if (JSONData.mount) {\n $('#nmj_mount').prop('readonly', true);\n } else {\n $('#nmj_mount').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmj_host').focus();\n }\n },\n\n testNMJ() {\n const nmj = {};\n nmj.host = $.trim($('#nmj_host').val());\n nmj.database = $('#nmj_database').val();\n nmj.mount = $('#nmj_mount').val();\n\n if (nmj.host) {\n $('#nmj_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJ-result').html(MEDUSA.config.loading);\n $.get('home/testNMJ', {\n host: nmj.host,\n database: nmj.database,\n mount: nmj.mount\n }).done(data => {\n $('#testNMJ-result').html(data);\n $('#testNMJ').prop('disabled', false);\n });\n } else {\n $('#testNMJ-result').html('Please fill out the necessary fields above.');\n $('#nmj_host').addClass('warning');\n }\n },\n\n settingsNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $('#nmjv2_host').val();\n\n if (nmjv2.host) {\n $('#testNMJv2-result').html(MEDUSA.config.loading);\n nmjv2.dbloc = '';\n const radios = document.getElementsByName('nmjv2_dbloc');\n\n for (let i = 0, len = radios.length; i < len; i++) {\n if (radios[i].checked) {\n nmjv2.dbloc = radios[i].value;\n break;\n }\n }\n\n nmjv2.dbinstance = $('#NMJv2db_instance').val();\n $.get('home/settingsNMJv2', {\n host: nmjv2.host,\n dbloc: nmjv2.dbloc,\n instance: nmjv2.dbinstance\n }, data => {\n if (data === null) {\n $('#nmjv2_database').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJv2-result').html(JSONData.message);\n $('#nmjv2_database').val(JSONData.database);\n\n if (JSONData.database) {\n $('#nmjv2_database').prop('readonly', true);\n } else {\n $('#nmjv2_database').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmjv2_host').focus();\n }\n },\n\n testNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $.trim($('#nmjv2_host').val());\n\n if (nmjv2.host) {\n $('#nmjv2_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJv2-result').html(MEDUSA.config.loading);\n $.get('home/testNMJv2', {\n host: nmjv2.host\n }).done(data => {\n $('#testNMJv2-result').html(data);\n $('#testNMJv2').prop('disabled', false);\n });\n } else {\n $('#testNMJv2-result').html('Please fill out the necessary fields above.');\n $('#nmjv2_host').addClass('warning');\n }\n },\n\n testFreeMobile() {\n const freemobile = {};\n freemobile.id = $.trim($('#freemobile_id').val());\n freemobile.apikey = $.trim($('#freemobile_apikey').val());\n\n if (!freemobile.id || !freemobile.apikey) {\n $('#testFreeMobile-result').html('Please fill out the necessary fields above.');\n\n if (freemobile.id) {\n $('#freemobile_id').removeClass('warning');\n } else {\n $('#freemobile_id').addClass('warning');\n }\n\n if (freemobile.apikey) {\n $('#freemobile_apikey').removeClass('warning');\n } else {\n $('#freemobile_apikey').addClass('warning');\n }\n\n return;\n }\n\n $('#freemobile_id,#freemobile_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testFreeMobile-result').html(MEDUSA.config.loading);\n $.get('home/testFreeMobile', {\n freemobile_id: freemobile.id,\n // eslint-disable-line camelcase\n freemobile_apikey: freemobile.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testFreeMobile-result').html(data);\n $('#testFreeMobile').prop('disabled', false);\n });\n },\n\n testTelegram() {\n const telegram = {};\n telegram.id = $.trim($('#telegram_id').val());\n telegram.apikey = $.trim($('#telegram_apikey').val());\n\n if (!telegram.id || !telegram.apikey) {\n $('#testTelegram-result').html('Please fill out the necessary fields above.');\n $('#telegram_id').addRemoveWarningClass(telegram.id);\n $('#telegram_apikey').addRemoveWarningClass(telegram.apikey);\n return;\n }\n\n $('#telegram_id,#telegram_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTelegram-result').html(MEDUSA.config.loading);\n $.get('home/testTelegram', {\n telegram_id: telegram.id,\n // eslint-disable-line camelcase\n telegram_apikey: telegram.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTelegram-result').html(data);\n $('#testTelegram').prop('disabled', false);\n });\n },\n\n testDiscord() {\n const {\n notifiers\n } = this;\n\n if (!notifiers.discord.webhook) {\n $('#testDiscord-result').html('Please fill out the necessary fields above.');\n $('#discord_webhook').addRemoveWarningClass(notifiers.discord.webhook);\n return;\n }\n\n $('#discord_id,#discord_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testDiscord-result').html(MEDUSA.config.loading);\n $.get('home/testDiscord', {\n discord_webhook: notifiers.discord.webhook,\n // eslint-disable-line camelcase\n discord_tts: notifiers.discord.tts // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testDiscord-result').html(data);\n $('#testDiscord').prop('disabled', false);\n });\n },\n\n testSlack() {\n const slack = {};\n slack.webhook = $.trim($('#slack_webhook').val());\n\n if (!slack.webhook) {\n $('#testSlack-result').html('Please fill out the necessary fields above.');\n $('#slack_webhook').addRemoveWarningClass(slack.webhook);\n return;\n }\n\n $('#slack_webhook').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testSlack-result').html(MEDUSA.config.loading);\n $.get('home/testslack', {\n slack_webhook: slack.webhook // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testSlack-result').html(data);\n $('#testSlack').prop('disabled', false);\n });\n },\n\n TraktGetPin() {\n window.open($('#trakt_pin_url').val(), 'popUp', 'toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550');\n $('#trakt_pin').prop('disabled', false);\n },\n\n authTrakt() {\n const trakt = {};\n trakt.pin = $('#trakt_pin').val();\n\n if (trakt.pin.length !== 0) {\n $.get('home/getTraktToken', {\n trakt_pin: trakt.pin // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTrakt-result').html(data);\n $('#authTrakt').addClass('hide');\n $('#trakt_pin').prop('disabled', true);\n $('#trakt_pin').val('');\n $('#TraktGetPin').removeClass('hide');\n });\n }\n },\n\n testTrakt() {\n const trakt = {};\n trakt.username = $.trim($('#trakt_username').val());\n trakt.trendingBlacklist = $.trim($('#trakt_blacklist_name').val());\n\n if (!trakt.username) {\n $('#testTrakt-result').html('Please fill out the necessary fields above.');\n $('#trakt_username').addRemoveWarningClass(trakt.username);\n return;\n }\n\n if (/\\s/g.test(trakt.trendingBlacklist)) {\n $('#testTrakt-result').html('Check blacklist name; the value needs to be a trakt slug');\n $('#trakt_blacklist_name').addClass('warning');\n return;\n }\n\n $('#trakt_username').removeClass('warning');\n $('#trakt_blacklist_name').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTrakt-result').html(MEDUSA.config.loading);\n $.get('home/testTrakt', {\n username: trakt.username,\n blacklist_name: trakt.trendingBlacklist // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTrakt-result').html(data);\n $('#testTrakt').prop('disabled', false);\n });\n },\n\n traktForceSync() {\n $('#testTrakt-result').html(MEDUSA.config.loading);\n $.getJSON('home/forceTraktSync', data => {\n $('#testTrakt-result').html(data.result);\n });\n },\n\n testEmail() {\n let to = '';\n const status = $('#testEmail-result');\n status.html(MEDUSA.config.loading);\n let host = $('#email_host').val();\n host = host.length > 0 ? host : null;\n let port = $('#email_port').val();\n port = port.length > 0 ? port : null;\n const tls = $('#email_tls').find('input').is(':checked') ? 1 : 0;\n let from = $('#email_from').val();\n from = from.length > 0 ? from : 'root@localhost';\n const user = $('#email_username').val().trim();\n const pwd = $('#email_password').val();\n let err = '';\n\n if (host === null) {\n err += '
  • You must specify an SMTP hostname!
  • ';\n }\n\n if (port === null) {\n err += '
  • You must specify an SMTP port!
  • ';\n } else if (port.match(/^\\d+$/) === null || Number.parseInt(port, 10) > 65535) {\n err += '
  • SMTP port must be between 0 and 65535!
  • ';\n }\n\n if (err.length > 0) {\n err = '
      ' + err + '
    ';\n status.html(err);\n } else {\n to = prompt('Enter an email address to send the test to:', null); // eslint-disable-line no-alert\n\n if (to === null || to.length === 0 || to.match(/.*@.*/) === null) {\n status.html('

    You must provide a recipient email address!

    ');\n } else {\n $.get('home/testEmail', {\n host,\n port,\n smtp_from: from,\n // eslint-disable-line camelcase\n use_tls: tls,\n // eslint-disable-line camelcase\n user,\n pwd,\n to\n }, msg => {\n $('#testEmail-result').html(msg);\n });\n }\n }\n },\n\n testPushalot() {\n const pushalot = {};\n pushalot.authToken = $.trim($('#pushalot_authorizationtoken').val());\n\n if (!pushalot.authToken) {\n $('#testPushalot-result').html('Please fill out the necessary fields above.');\n $('#pushalot_authorizationtoken').addClass('warning');\n return;\n }\n\n $('#pushalot_authorizationtoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushalot-result').html(MEDUSA.config.loading);\n $.get('home/testPushalot', {\n authorizationToken: pushalot.authToken\n }).done(data => {\n $('#testPushalot-result').html(data);\n $('#testPushalot').prop('disabled', false);\n });\n }\n\n }\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\")))\n\n//# sourceURL=webpack:///./src/components/config-notifications.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -1058,7 +1058,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"config-notifications\" } },\n [\n _c(\"vue-snotify\"),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"config\" } }, [\n _c(\"div\", { attrs: { id: \"config-content\" } }, [\n _c(\n \"form\",\n {\n attrs: { id: \"configForm\", method: \"post\" },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.save()\n }\n }\n },\n [\n _c(\"div\", { attrs: { id: \"config-components\" } }, [\n _c(\"ul\", [\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#home-theater-nas\" } }, [\n _vm._v(\"Home Theater / NAS\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#devices\" } }, [\n _vm._v(\"Devices\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#social\" } }, [\n _vm._v(\"Social\")\n ])\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"home-theater-nas\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-kodi\",\n attrs: { title: \"KODI\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://kodi.tv\" } },\n [_vm._v(\"KODI\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A free and open source cross-platform media center and home entertainment system software with a 10-foot user interface designed for the living-room TV.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_kodi\",\n explanations: [\"Send KODI commands?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.kodi, \"enabled\", $$v)\n },\n expression: \"notifiers.kodi.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.kodi.enabled,\n expression: \"notifiers.kodi.enabled\"\n }\n ],\n attrs: { id: \"content-use-kodi\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Always on\",\n id: \"kodi_always_on\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.alwaysOn,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"alwaysOn\",\n $$v\n )\n },\n expression: \"notifiers.kodi.alwaysOn\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"kodi_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"kodi_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"kodi_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.kodi.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.kodi.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update library\",\n id: \"kodi_update_library\",\n explanations: [\n \"update KODI library when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.library,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"library\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.library\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Full library update\",\n id: \"kodi_update_full\",\n explanations: [\n \"perform a full library update if update per-show fails?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.full,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"full\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.full\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Clean library\",\n id: \"kodi_clean_library\",\n explanations: [\n \"clean KODI library when replaces a already downloaded episode?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.cleanLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"cleanLibrary\",\n $$v\n )\n },\n expression: \"notifiers.kodi.cleanLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Only update first host\",\n id: \"kodi_update_onlyfirst\",\n explanations: [\n \"only send library updates/clean to the first active host?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.onlyFirst,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"onlyFirst\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.onlyFirst\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-sm-10 content\" },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"kodi_host\",\n id: \"kodi_host\",\n \"list-items\": _vm.notifiers.kodi.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.kodi.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"host running KODI (eg. 192.168.1.100:8080)\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"kodi_username\",\n explanations: [\n \"username for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.kodi.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"kodi_password\",\n explanations: [\n \"password for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.kodi.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testKODI-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test KODI\",\n id: \"testKODI\"\n },\n on: { click: _vm.testKODI }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plex\",\n attrs: { title: \"Plex Media Server\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Media Server\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Experience your media on a visually stunning, easy to use interface on your Mac connected to your TV. Your media library has never looked this good!\"\n )\n ]),\n _vm._v(\" \"),\n _vm.notifiers.plex.server.enabled\n ? _c(\"p\", { staticClass: \"plexinfo\" }, [\n _vm._v(\n \"For sending notifications to Plex Home Theater (PHT) clients, use the KODI notifier with port \"\n ),\n _c(\"b\", [_vm._v(\"3005\")]),\n _vm._v(\".\")\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_server\",\n explanations: [\"Send Plex server notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.server.enabled,\n expression: \"notifiers.plex.server.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-server\" }\n },\n [\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Plex Media Server Auth Token\",\n id: \"plex_server_token\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.token,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"token\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.token\"\n }\n },\n [\n _c(\"p\", [_vm._v(\"Auth Token used by plex\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"span\",\n [\n _vm._v(\"See: \"),\n _c(\n \"app-link\",\n {\n staticClass: \"wiki\",\n attrs: {\n href:\n \"https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\"\n }\n },\n [\n _c(\"strong\", [\n _vm._v(\n \"Finding your account token\"\n )\n ])\n ]\n )\n ],\n 1\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_server_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_server_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update Library\",\n id: \"plex_update_library\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.server.updateLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"updateLibrary\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.server.updateLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_server_host\",\n label: \"Plex Media Server IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_server_host\",\n id: \"plex_server_host\",\n \"list-items\":\n _vm.notifiers.plex.server.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.server.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Media Server\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.1:32400, 192.168.1.2:32400)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"plex_server_https\",\n explanations: [\n \"use https for plex media server requests?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.https,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"https\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.https\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPMS-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Media Server(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Media Server\",\n id: \"testPMS\"\n },\n on: { click: _vm.testPMS }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clear-left\" }, [\n _vm._v(\" \")\n ])\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plexth\",\n attrs: { title: \"Plex Media Client\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Home Theater\")]\n )\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_client\",\n explanations: [\n \"Send Plex Home Theater notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.client.enabled,\n expression: \"notifiers.plex.client.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"plex_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"plex_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"plex_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_client_host\",\n label: \"Plex Home Theater IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_client_host\",\n id: \"plex_client_host\",\n \"list-items\":\n _vm.notifiers.plex.client.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.client.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Home Theater\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.100:3000, 192.168.1.101:3000)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_client_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_client_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPHT-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Home Theater(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Home Theater\",\n id: \"testPHT\"\n },\n on: { click: _vm.testPHT }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\"\n }\n }),\n _vm._v(\" \"),\n _vm._m(1)\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-emby\",\n attrs: { title: \"Emby\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://emby.media\" } },\n [_vm._v(\"Emby\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A home media server built using other popular open source technologies.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_emby\",\n explanations: [\"Send update commands to Emby?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"enabled\", $$v)\n },\n expression: \"notifiers.emby.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.emby.enabled,\n expression: \"notifiers.emby.enabled\"\n }\n ],\n attrs: { id: \"content_use_emby\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Emby IP:Port\",\n id: \"emby_host\",\n explanations: [\n \"host running Emby (eg. 192.168.1.100:8096)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"host\", $$v)\n },\n expression: \"notifiers.emby.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: { label: \"Api Key\", id: \"emby_apikey\" },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.apiKey,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"apiKey\", $$v)\n },\n expression: \"notifiers.emby.apiKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEMBY-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Emby\",\n id: \"testEMBY\"\n },\n on: { click: _vm.testEMBY }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJ\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJ, is the official media jukebox interface made available for the Popcorn Hour 200-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmj\",\n explanations: [\"Send update commands to NMJ?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"enabled\", $$v)\n },\n expression: \"notifiers.nmj.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmj.enabled,\n expression: \"notifiers.nmj.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmj\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmj_host\",\n explanations: [\n \"IP address of Popcorn 200-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"host\", $$v)\n },\n expression: \"notifiers.nmj.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"settingsNMJ\",\n label: \"Get settings\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Get Settings\",\n id: \"settingsNMJ\"\n },\n on: { click: _vm.settingsNMJ }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on and NMJ running.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ database\",\n id: \"nmj_database\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.database,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"database\", $$v)\n },\n expression: \"notifiers.nmj.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ mount\",\n id: \"nmj_mount\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.mount,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"mount\", $$v)\n },\n expression: \"notifiers.nmj.mount\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJ-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJ\",\n id: \"testNMJ\"\n },\n on: { click: _vm.testNMJ }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox v2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJv2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJv2, is the official media jukebox interface made available for the Popcorn Hour 300 & 400-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmjv2\",\n explanations: [\n \"Send popcorn hour (nmjv2) notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"enabled\", $$v)\n },\n expression: \"notifiers.nmjv2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmjv2.enabled,\n expression: \"notifiers.nmjv2.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmjv2\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmjv2_host\",\n explanations: [\n \"IP address of Popcorn 300/400-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"host\", $$v)\n },\n expression: \"notifiers.nmjv2.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_location\",\n label: \"Database location\"\n }\n },\n [\n _c(\n \"label\",\n {\n staticClass: \"space-right\",\n attrs: { for: \"NMJV2_DBLOC_A\" }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"local\",\n id: \"NMJV2_DBLOC_A\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Local Media\\n \"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n { attrs: { for: \"NMJV2_DBLOC_B\" } },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"network\",\n id: \"NMJV2_DBLOC_B\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Network Media\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_instance\",\n label: \"Database instance\"\n }\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { id: \"NMJv2db_instance\" }\n },\n [\n _c(\"option\", { attrs: { value: \"0\" } }, [\n _vm._v(\"#1 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"#2 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"2\" } }, [\n _vm._v(\"#3 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3\" } }, [\n _vm._v(\"#4 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"4\" } }, [\n _vm._v(\"#5 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"5\" } }, [\n _vm._v(\"#6 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"6\" } }, [\n _vm._v(\"#7 \")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"adjust this value if the wrong database is selected.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"get_nmjv2_find_database\",\n label: \"Find database\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Find Database\",\n id: \"settingsNMJv2\"\n },\n on: { click: _vm.settingsNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJv2 database\",\n id: \"nmjv2_database\",\n explanations: [\n \"automatically filled via the 'Find Database' buttons.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.database,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.nmjv2,\n \"database\",\n $$v\n )\n },\n expression: \"notifiers.nmjv2.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJv2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJv2\",\n id: \"testNMJv2\"\n },\n on: { click: _vm.testNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno1\",\n attrs: { title: \"Synology\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"The Synology DiskStation NAS.\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Indexer is the daemon running on the Synology NAS to build its media database.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"use_synoindex\",\n explanations: [\n \"Note: requires Medusa to be running on your Synology NAS.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synologyIndex.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synologyIndex,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.synologyIndex.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synologyIndex.enabled,\n expression: \"notifiers.synologyIndex.enabled\"\n }\n ],\n attrs: { id: \"content_use_synoindex\" }\n },\n [\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ]\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno2\",\n attrs: { title: \"Synology Indexer\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology Notifier\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Notifier is the notification system of Synology DSM\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_synologynotifier\",\n explanations: [\n \"Send notifications to the Synology Notifier?\",\n \"Note: requires Medusa to be running on your Synology DSM.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.synology, \"enabled\", $$v)\n },\n expression: \"notifiers.synology.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synology.enabled,\n expression: \"notifiers.synology.enabled\"\n }\n ],\n attrs: { id: \"content-use-synology-notifier\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"synology_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"synology_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pytivo\",\n attrs: { title: \"pyTivo\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://pytivo.sourceforge.net/wiki/index.php/PyTivo\"\n }\n },\n [_vm._v(\"pyTivo\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"pyTivo is both an HMO and GoBack server. This notifier will load the completed downloads to your Tivo.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pytivo\",\n explanations: [\"Send notifications to pyTivo?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"enabled\", $$v)\n },\n expression: \"notifiers.pyTivo.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pyTivo.enabled,\n expression: \"notifiers.pyTivo.enabled\"\n }\n ],\n attrs: { id: \"content-use-pytivo\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo IP:Port\",\n id: \"pytivo_host\",\n explanations: [\n \"host running pyTivo (eg. 192.168.1.1:9032)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"host\", $$v)\n },\n expression: \"notifiers.pyTivo.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo share name\",\n id: \"pytivo_name\",\n explanations: [\n \"(Messages & Settings > Account & System Information > System Information > DVR name)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.shareName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pyTivo,\n \"shareName\",\n $$v\n )\n },\n expression: \"notifiers.pyTivo.shareName\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Tivo name\",\n id: \"pytivo_tivo_name\",\n explanations: [\n \"value used in pyTivo Web Configuration to name the share.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"name\", $$v)\n },\n expression: \"notifiers.pyTivo.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"devices\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-growl\",\n attrs: { title: \"Growl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://growl.info/\" } },\n [_vm._v(\"Growl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A cross-platform unobtrusive global notification system.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_growl_client\",\n explanations: [\"Send Growl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"enabled\", $$v)\n },\n expression: \"notifiers.growl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.growl.enabled,\n expression: \"notifiers.growl.enabled\"\n }\n ],\n attrs: { id: \"content-use-growl-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"growl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"growl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"growl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.growl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.growl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Growl IP:Port\",\n id: \"growl_host\",\n explanations: [\n \"host running Growl (eg. 192.168.1.100:23053)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"host\", $$v)\n },\n expression: \"notifiers.growl.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"growl_password\",\n explanations: [\n \"may leave blank if Medusa is on the same host.\",\n \"otherwise Growl requires a password to be used.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.growl.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testGrowl-result\" }\n },\n [\n _vm._v(\n \"Click below to register and test Growl, this is required for Growl notifications to work.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Register Growl\",\n id: \"testGrowl\"\n },\n on: { click: _vm.testGrowl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-prowl\",\n attrs: { title: \"Prowl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://www.prowlapp.com/\" } },\n [_vm._v(\"Prowl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"A Growl client for iOS.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_prowl\",\n explanations: [\"Send Prowl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.prowl, \"enabled\", $$v)\n },\n expression: \"notifiers.prowl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.prowl.enabled,\n expression: \"notifiers.prowl.enabled\"\n }\n ],\n attrs: { id: \"content-use-prowl\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"prowl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"prowl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"prowl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.prowl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.prowl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Prowl Message Title\",\n id: \"prowl_message_title\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.messageTitle,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"messageTitle\",\n $$v\n )\n },\n expression: \"notifiers.prowl.messageTitle\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_api\",\n label: \"Api\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl_api\",\n id: \"prowl_api\",\n \"csv-enabled\": \"\",\n \"list-items\": _vm.notifiers.prowl.api\n },\n on: { change: _vm.onChangeProwlApi }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n [\n _vm._v(\n \"Prowl API(s) listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\n \" shows.\\n Your Prowl API key is available at:\\n \"\n ),\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://www.prowlapp.com/api_settings.php\"\n }\n },\n [\n _vm._v(\n \"\\n https://www.prowlapp.com/api_settings.php\"\n )\n ]\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_show_notification_list\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n placeholder: \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.prowlUpdateApiKeys($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl-show-list\",\n id: \"prowl-show-list\",\n \"list-items\":\n _vm.prowlSelectedShowApiKeys\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"prowl\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Configure per-show notifications here by entering Prowl API key(s), after selecting a show in the drop-down box.\\n Be sure to activate the 'Save for this show' button below after each entry.\\n \"\n ),\n _c(\"span\", [\n _vm._v(\n \"The values are automatically saved when adding the api key.\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_priority\",\n label: \"Prowl priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.prowl.priority,\n expression: \"notifiers.prowl.priority\"\n }\n ],\n staticClass: \"form-control input-sm\",\n attrs: {\n id: \"prowl_priority\",\n name: \"prowl_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.prowl,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.prowlPriorityOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Prowl messages from Medusa.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testProwl-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Prowl\",\n id: \"testProwl\"\n },\n on: { click: _vm.testProwl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-libnotify\",\n attrs: { title: \"Libnotify\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://library.gnome.org/devel/libnotify/\"\n }\n },\n [_vm._v(\"Libnotify\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"p\",\n [\n _vm._v(\n \"The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package \"\n ),\n _c(\n \"app-link\",\n { attrs: { href: \"apt:python-notify\" } },\n [_vm._v(\"python-notify\")]\n ),\n _vm._v(\").\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_libnotify_client\",\n explanations: [\"Send Libnotify notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.libnotify.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.libnotify.enabled,\n expression: \"notifiers.libnotify.enabled\"\n }\n ],\n attrs: { id: \"content-use-libnotify\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"libnotify_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"libnotify_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"libnotify_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testLibnotify-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Libnotify\",\n id: \"testLibnotify\"\n },\n on: { click: _vm.testLibnotify }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushover\",\n attrs: { title: \"Pushover\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushover.net/\" } },\n [_vm._v(\"Pushover\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushover makes it easy to send real-time notifications to your Android and iOS devices.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushover_client\",\n explanations: [\"Send Pushover notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushover, \"enabled\", $$v)\n },\n expression: \"notifiers.pushover.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushover.enabled,\n expression: \"notifiers.pushover.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushover\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushover_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushover_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushover_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushover User Key\",\n id: \"pushover_userkey\",\n explanations: [\n \"User Key of your Pushover account\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.userKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"userKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.userKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Pushover API Key\",\n id: \"pushover_apikey\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.apiKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"apiKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.apiKey\"\n }\n },\n [\n _c(\n \"span\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://pushover.net/apps/build/\"\n }\n },\n [_c(\"b\", [_vm._v(\"Click here\")])]\n ),\n _vm._v(\" to create a Pushover API key\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_device\",\n label: \"Pushover Devices\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"pushover_device\",\n id: \"pushover_device\",\n \"list-items\":\n _vm.notifiers.pushover.device\n },\n on: {\n change: function($event) {\n _vm.notifiers.pushover.device = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"List of pushover devices you want to send notifications to\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_sound\",\n label: \"Pushover notification sound\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.pushover.sound,\n expression: \"notifiers.pushover.sound\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_sound\",\n name: \"pushover_sound\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"sound\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.pushoverSoundOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"Choose notification sound to use\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_priority\",\n label: \"Pushover notification priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushover.priority,\n expression:\n \"notifiers.pushover.priority\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_priority\",\n name: \"pushover_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushoverPriorityOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Pushover messages from Medusa\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushover-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushover\",\n id: \"testPushover\"\n },\n on: { click: _vm.testPushover }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-boxcar2\",\n attrs: { title: \"Boxcar 2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://new.boxcar.io/\" } },\n [_vm._v(\"Boxcar 2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Read your messages where and when you want them!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_boxcar2\",\n explanations: [\"Send boxcar2 notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.boxcar2, \"enabled\", $$v)\n },\n expression: \"notifiers.boxcar2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.boxcar2.enabled,\n expression: \"notifiers.boxcar2.enabled\"\n }\n ],\n attrs: { id: \"content-use-boxcar2-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"boxcar2_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"boxcar2_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"boxcar2_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.boxcar2\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Boxcar2 Access token\",\n id: \"boxcar2_accesstoken\",\n explanations: [\n \"access token for your Boxcar account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.accessToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"accessToken\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.accessToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testBoxcar2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Boxcar\",\n id: \"testBoxcar2\"\n },\n on: { click: _vm.testBoxcar2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushalot\",\n attrs: { title: \"Pushalot\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushalot.com\" } },\n [_vm._v(\"Pushalot\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushalot is a platform for receiving custom push notifications to connected devices running Windows Phone or Windows 8.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushalot\",\n explanations: [\"Send Pushalot notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushalot, \"enabled\", $$v)\n },\n expression: \"notifiers.pushalot.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushalot.enabled,\n expression: \"notifiers.pushalot.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushalot-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushalot_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushalot_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushalot_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushalot authorization token\",\n id: \"pushalot_authorizationtoken\",\n explanations: [\n \"authorization token of your Pushalot account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.authToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"authToken\",\n $$v\n )\n },\n expression: \"notifiers.pushalot.authToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushalot-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushalot\",\n id: \"testPushalot\"\n },\n on: { click: _vm.testPushalot }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushbullet\",\n attrs: { title: \"Pushbullet\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.pushbullet.com\" } },\n [_vm._v(\"Pushbullet\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushbullet is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushbullet\",\n explanations: [\"Send pushbullet notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushbullet.enabled,\n expression: \"notifiers.pushbullet.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushbullet-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushbullet_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushbullet_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushbullet_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushbullet API key\",\n id: \"pushbullet_api\",\n explanations: [\n \"API key of your Pushbullet account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushbullet_device_list\",\n label: \"Pushbullet devices\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Update device list\",\n id: \"get-pushbullet-devices\"\n },\n on: {\n click: _vm.getPushbulletDeviceOptions\n }\n }),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushbullet.device,\n expression:\n \"notifiers.pushbullet.device\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushbullet_device_list\",\n name: \"pushbullet_device_list\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"device\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushbulletDeviceOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value },\n on: {\n change: function($event) {\n _vm.pushbulletTestInfo =\n \"Don't forget to save your new pushbullet settings.\"\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"select device you wish to push to.\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushbullet-resultsfsf\" }\n },\n [_vm._v(_vm._s(_vm.pushbulletTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushbullet\",\n id: \"testPushbullet\"\n },\n on: { click: _vm.testPushbulletApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-join\",\n attrs: { title: \"Join\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://joaoapps.com/join/\" } },\n [_vm._v(\"Join\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Join is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_join\",\n explanations: [\"Send join notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"enabled\", $$v)\n },\n expression: \"notifiers.join.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.join.enabled,\n expression: \"notifiers.join.enabled\"\n }\n ],\n attrs: { id: \"content-use-join-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"join_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"join_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"join_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.join.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.join.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join API key\",\n id: \"join_api\",\n explanations: [\n \"API key of your Join account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"api\", $$v)\n },\n expression: \"notifiers.join.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join Device ID(s) key\",\n id: \"join_device\",\n explanations: [\n \"Enter DeviceID of the device(s) you wish to send notifications to, comma separated if using multiple.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.device,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"device\", $$v)\n },\n expression: \"notifiers.join.device\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testJoin-result\" }\n },\n [_vm._v(_vm._s(_vm.joinTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Join\",\n id: \"testJoin\"\n },\n on: { click: _vm.testJoinApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-freemobile\",\n attrs: { title: \"Free Mobile\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://mobile.free.fr/\" } },\n [_vm._v(\"Free Mobile\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Free Mobile is a famous French cellular network provider. It provides to their customer a free SMS API.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_freemobile\",\n explanations: [\"Send SMS notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.freemobile.enabled,\n expression: \"notifiers.freemobile.enabled\"\n }\n ],\n attrs: { id: \"content-use-freemobile-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"freemobile_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"freemobile_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"freemobile_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile customer ID\",\n id: \"freemobile_id\",\n explanations: [\n \"It's your Free Mobile customer ID (8 digits)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.id,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"id\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile API Key\",\n id: \"freemobile_apikey\",\n explanations: [\n \"Find your API Key in your customer portal.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testFreeMobile-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test SMS\",\n id: \"testFreeMobile\"\n },\n on: { click: _vm.testFreeMobile }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-telegram\",\n attrs: { title: \"Telegram\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://telegram.org/\" } },\n [_vm._v(\"Telegram\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Telegram is a cloud-based instant messaging service.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_telegram\",\n explanations: [\"Send Telegram notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"enabled\", $$v)\n },\n expression: \"notifiers.telegram.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.telegram.enabled,\n expression: \"notifiers.telegram.enabled\"\n }\n ],\n attrs: { id: \"content-use-telegram-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"telegram_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"telegram_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"telegram_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"User/group ID\",\n id: \"telegram_id\",\n explanations: [\n \"Contact @myidbot on Telegram to get an ID\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.id,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"id\", $$v)\n },\n expression: \"notifiers.telegram.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot API token\",\n id: \"telegram_apikey\",\n explanations: [\n \"Contact @BotFather on Telegram to set up one\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"api\", $$v)\n },\n expression: \"notifiers.telegram.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTelegram-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Telegram\",\n id: \"testTelegram\"\n },\n on: { click: _vm.testTelegram }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-discord\",\n attrs: { title: \"Discord\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://discordapp.com/\" } },\n [_vm._v(\"Discord\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Discord is a cloud-based All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone..\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_discord\",\n explanations: [\"Send Discord notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"enabled\", $$v)\n },\n expression: \"notifiers.discord.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.discord.enabled,\n expression: \"notifiers.discord.enabled\"\n }\n ],\n attrs: { id: \"content-use-discord-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"discord_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.discord.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"discord_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"discord_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.discord\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Channel webhook\",\n id: \"discord_webhook\",\n explanations: [\n \"Add a webhook to a channel, use the returned url here\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.discord.webhook\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Text to speech\",\n id: \"discord_tts\",\n explanations: [\n \"Use discord text to speech feature\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.tts,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"tts\", $$v)\n },\n expression: \"notifiers.discord.tts\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testDiscord-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Discord\",\n id: \"testDiscord\"\n },\n on: { click: _vm.testDiscord }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"social\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-twitter\",\n attrs: { title: \"Twitter\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.twitter.com\" } },\n [_vm._v(\"Twitter\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A social networking and microblogging service, enabling its users to send and read other users' messages called tweets.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_twitter\",\n explanations: [\n \"Should Medusa post tweets on Twitter?\",\n \"Note: you may want to use a secondary account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"enabled\", $$v)\n },\n expression: \"notifiers.twitter.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.twitter.enabled,\n expression: \"notifiers.twitter.enabled\"\n }\n ],\n attrs: { id: \"content-use-twitter\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"twitter_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.twitter.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"twitter_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"twitter_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.twitter\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Send direct message\",\n id: \"twitter_usedm\",\n explanations: [\n \"send a notification via Direct Message, not via status update\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.directMessage,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"directMessage\",\n $$v\n )\n },\n expression: \"notifiers.twitter.directMessage\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Send DM to\",\n id: \"twitter_dmto\",\n explanations: [\n \"Twitter account to send Direct Messages to (must follow you)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.dmto,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"dmto\", $$v)\n },\n expression: \"notifiers.twitter.dmto\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep1\",\n label: \"Step 1\"\n }\n },\n [\n _c(\n \"span\",\n { staticStyle: { \"font-size\": \"11px\" } },\n [\n _vm._v(\n 'Click the \"Request Authorization\" button. '\n ),\n _c(\"br\"),\n _vm._v(\n \"This will open a new page containing an auth key. \"\n ),\n _c(\"br\"),\n _vm._v(\n \"Note: if nothing happens check your popup blocker.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Request Authorization\",\n id: \"twitter-step-1\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep1($event)\n }\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep2\",\n label: \"Step 2\"\n }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.twitterKey,\n expression: \"twitterKey\"\n }\n ],\n staticClass:\n \"form-control input-sm max-input350\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n id: \"twitter_key\",\n placeholder:\n \"Enter the key Twitter gave you, and click 'Verify Key'\"\n },\n domProps: { value: _vm.twitterKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.twitterKey = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Verify Key\",\n id: \"twitter-step-2\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep2($event)\n }\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"testNotification\",\n attrs: { id: \"testTwitter-result\" },\n domProps: {\n innerHTML: _vm._s(_vm.twitterTestInfo)\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Twitter\",\n id: \"testTwitter\"\n },\n on: { click: _vm.twitterTest }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-trakt\",\n attrs: { title: \"Trakt\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://trakt.tv/\" } },\n [_vm._v(\"Trakt\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"trakt helps keep a record of what TV shows and movies you are watching. Based on your favorites, trakt recommends additional shows and movies you'll enjoy!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_trakt\",\n explanations: [\"Send Trakt.tv notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"enabled\", $$v)\n },\n expression: \"notifiers.trakt.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.enabled,\n expression: \"notifiers.trakt.enabled\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"trakt_username\",\n explanations: [\n \"username of your Trakt account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.trakt.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_pin\",\n label: \"Trakt PIN\"\n }\n },\n [\n _c(\"input\", {\n staticClass:\n \"form-control input-sm max-input250\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n name: \"trakt_pin\",\n id: \"trakt_pin\",\n value: \"\",\n disabled: _vm.notifiers.trakt.accessToken\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: _vm.traktNewTokenMessage,\n id: \"TraktGetPin\"\n },\n on: { click: _vm.TraktGetPin }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa hide\",\n attrs: {\n type: \"button\",\n value: \"Authorize Medusa\",\n id: \"authTrakt\"\n },\n on: { click: _vm.authTrakt }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"PIN code to authorize Medusa to access Trakt on your behalf.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n label: \"API Timeout\",\n id: \"trakt_timeout\",\n explanations: [\n \"Seconds to wait for Trakt API to respond. (Use 0 to wait forever)\"\n ]\n },\n model: {\n value: _vm.notifiers.trakt.timeout,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"timeout\",\n $$v\n )\n },\n expression: \"notifiers.trakt.timeout\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Default indexer\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.defaultIndexer,\n expression:\n \"notifiers.trakt.defaultIndexer\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_default_indexer\",\n name: \"trakt_default_indexer\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"defaultIndexer\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktIndexersOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync libraries\",\n id: \"trakt_sync\",\n explanations: [\n \"Sync your Medusa show library with your Trakt collection.\",\n \"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\",\n \"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.sync,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"sync\", $$v)\n },\n expression: \"notifiers.trakt.sync\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.sync,\n expression: \"notifiers.trakt.sync\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove Episodes From Collection\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"Remove an Episode from your Trakt Collection if it is not in your Medusa Library.\",\n \"Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync watchlist\",\n id: \"trakt_sync_watchlist\",\n explanations: [\n \"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\",\n \"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\",\n \"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.syncWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncWatchlist\",\n $$v\n )\n },\n expression: \"notifiers.trakt.syncWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.syncWatchlist,\n expression:\n \"notifiers.trakt.syncWatchlist\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Watchlist add method\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.methodAdd,\n expression:\n \"notifiers.trakt.methodAdd\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_method_add\",\n name: \"trakt_method_add\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"methodAdd\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktMethodOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"method in which to download episodes for new shows.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove episode\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"remove an episode from your watchlist after it's downloaded.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove series\",\n id: \"trakt_remove_serieslist\",\n explanations: [\n \"remove the whole series from your watchlist after any download.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeSerieslist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeSerieslist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeSerieslist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove watched show\",\n id: \"trakt_remove_show_from_application\",\n explanations: [\n \"remove the show from Medusa if it's ended and completely watched\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt\n .removeShowFromApplication,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeShowFromApplication\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeShowFromApplication\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Start paused\",\n id: \"trakt_start_paused\",\n explanations: [\n \"shows grabbed from your trakt watchlist start paused.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.startPaused,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"startPaused\",\n $$v\n )\n },\n expression: \"notifiers.trakt.startPaused\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Trakt blackList name\",\n id: \"trakt_blacklist_name\",\n explanations: [\n \"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.blacklistName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"blacklistName\",\n $$v\n )\n },\n expression: \"notifiers.trakt.blacklistName\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTrakt-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Trakt\",\n id: \"testTrakt\"\n },\n on: { click: _vm.testTrakt }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Force Sync\",\n id: \"forceSync\"\n },\n on: { click: _vm.traktForceSync }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", id: \"trakt_pin_url\" },\n domProps: { value: _vm.notifiers.trakt.pinUrl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-email\",\n attrs: { title: \"Email\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://en.wikipedia.org/wiki/Comparison_of_webmail_providers\"\n }\n },\n [_vm._v(\"Email\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Allows configuration of email notifications on a per show basis.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_email\",\n explanations: [\"Send email notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"enabled\", $$v)\n },\n expression: \"notifiers.email.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.email.enabled,\n expression: \"notifiers.email.enabled\"\n }\n ],\n attrs: { id: \"content-use-email\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"email_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"email_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"email_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.email\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.email.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP host\",\n id: \"email_host\",\n explanations: [\n \"hostname of your SMTP email server.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"host\", $$v)\n },\n expression: \"notifiers.email.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n min: 1,\n step: 1,\n label: \"SMTP port\",\n id: \"email_port\",\n explanations: [\n \"port number used to connect to your SMTP host.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.port,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"port\", $$v)\n },\n expression: \"notifiers.email.port\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP from\",\n id: \"email_from\",\n explanations: [\n \"sender email address, some hosts require a real address.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.from,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"from\", $$v)\n },\n expression: \"notifiers.email.from\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Use TLS\",\n id: \"email_tls\",\n explanations: [\"check to use TLS encryption.\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.tls,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"tls\", $$v)\n },\n expression: \"notifiers.email.tls\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP username\",\n id: \"email_username\",\n explanations: [\n \"(optional) your SMTP server username.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.email.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"SMTP password\",\n id: \"email_password\",\n explanations: [\n \"(optional) your SMTP server password.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.email.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_list\",\n label: \"Global email list\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.notifiers.email.addressList\n },\n on: { change: _vm.emailUpdateAddressList }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Email Subject\",\n id: \"email_subject\",\n explanations: [\n \"Use a custom subject for some privacy protection?\",\n \"(Leave blank for the default Medusa subject)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.subject,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"subject\",\n $$v\n )\n },\n expression: \"notifiers.email.subject\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_show\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n placeholder: \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.emailUpdateShowEmail($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.emailSelectedShowAdresses\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"email\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEmail-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Email\",\n id: \"testEmail\"\n },\n on: { click: _vm.testEmail }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-slack\",\n attrs: { title: \"Slack\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://slack.com\" } },\n [_vm._v(\"Slack\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Slack is a messaging app for teams.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_slack_client\",\n explanations: [\"Send Slack notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.slack, \"enabled\", $$v)\n },\n expression: \"notifiers.slack.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.slack.enabled,\n expression: \"notifiers.slack.enabled\"\n }\n ],\n attrs: { id: \"content-use-slack-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"slack_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"slack_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"slack_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.slack\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.slack.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Slack Incoming Webhook\",\n id: \"slack_webhook\",\n explanations: [\n \"Create an incoming webhook, to communicate with your slack channel.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.slack.webhook\"\n }\n },\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://my.slack.com/services/new/incoming-webhook\"\n }\n },\n [\n _vm._v(\n \"https://my.slack.com/services/new/incoming-webhook/\"\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testSlack-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Slack\",\n id: \"testSlack\"\n },\n on: { click: _vm.testSlack }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n }),\n _vm._v(\" \"),\n _c(\"br\")\n ])\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clearfix\" })\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"label\",\n { staticClass: \"col-sm-2 control-label\", attrs: { for: \"kodi_host\" } },\n [_c(\"span\", [_vm._v(\"KODI IP:Port\")])]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"clear-left\" }, [\n _c(\"p\", [\n _c(\"b\", [_vm._v(\"Note:\")]),\n _vm._v(\" some Plex Home Theaters \"),\n _c(\"b\", { staticClass: \"boldest\" }, [_vm._v(\"do not\")]),\n _vm._v(\" support notifications e.g. Plexapp for Samsung TVs\")\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/config-notifications.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"config-notifications\" } },\n [\n _c(\"vue-snotify\"),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"config\" } }, [\n _c(\"div\", { attrs: { id: \"config-content\" } }, [\n _c(\n \"form\",\n {\n attrs: { id: \"configForm\", method: \"post\" },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.save()\n }\n }\n },\n [\n _c(\"div\", { attrs: { id: \"config-components\" } }, [\n _c(\"ul\", [\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#home-theater-nas\" } }, [\n _vm._v(\"Home Theater / NAS\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#devices\" } }, [\n _vm._v(\"Devices\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#social\" } }, [\n _vm._v(\"Social\")\n ])\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"home-theater-nas\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-kodi\",\n attrs: { title: \"KODI\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://kodi.tv\" } },\n [_vm._v(\"KODI\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A free and open source cross-platform media center and home entertainment system software with a 10-foot user interface designed for the living-room TV.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_kodi\",\n explanations: [\"Send KODI commands?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.kodi, \"enabled\", $$v)\n },\n expression: \"notifiers.kodi.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.kodi.enabled,\n expression: \"notifiers.kodi.enabled\"\n }\n ],\n attrs: { id: \"content-use-kodi\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Always on\",\n id: \"kodi_always_on\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.alwaysOn,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"alwaysOn\",\n $$v\n )\n },\n expression: \"notifiers.kodi.alwaysOn\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"kodi_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"kodi_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"kodi_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.kodi.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.kodi.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update library\",\n id: \"kodi_update_library\",\n explanations: [\n \"update KODI library when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.library,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"library\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.library\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Full library update\",\n id: \"kodi_update_full\",\n explanations: [\n \"perform a full library update if update per-show fails?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.full,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"full\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.full\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Clean library\",\n id: \"kodi_clean_library\",\n explanations: [\n \"clean KODI library when replaces a already downloaded episode?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.cleanLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"cleanLibrary\",\n $$v\n )\n },\n expression: \"notifiers.kodi.cleanLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Only update first host\",\n id: \"kodi_update_onlyfirst\",\n explanations: [\n \"only send library updates/clean to the first active host?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.onlyFirst,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"onlyFirst\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.onlyFirst\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-sm-10 content\" },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"kodi_host\",\n id: \"kodi_host\",\n \"list-items\": _vm.notifiers.kodi.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.kodi.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"host running KODI (eg. 192.168.1.100:8080)\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"kodi_username\",\n explanations: [\n \"username for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.kodi.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"kodi_password\",\n explanations: [\n \"password for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.kodi.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testKODI-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test KODI\",\n id: \"testKODI\"\n },\n on: { click: _vm.testKODI }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plex\",\n attrs: { title: \"Plex Media Server\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Media Server\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Experience your media on a visually stunning, easy to use interface on your Mac connected to your TV. Your media library has never looked this good!\"\n )\n ]),\n _vm._v(\" \"),\n _vm.notifiers.plex.server.enabled\n ? _c(\"p\", { staticClass: \"plexinfo\" }, [\n _vm._v(\n \"For sending notifications to Plex Home Theater (PHT) clients, use the KODI notifier with port \"\n ),\n _c(\"b\", [_vm._v(\"3005\")]),\n _vm._v(\".\")\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_server\",\n explanations: [\"Send Plex server notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.server.enabled,\n expression: \"notifiers.plex.server.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-server\" }\n },\n [\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Plex Media Server Auth Token\",\n id: \"plex_server_token\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.token,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"token\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.token\"\n }\n },\n [\n _c(\"p\", [_vm._v(\"Auth Token used by plex\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"span\",\n [\n _vm._v(\"See: \"),\n _c(\n \"app-link\",\n {\n staticClass: \"wiki\",\n attrs: {\n href:\n \"https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\"\n }\n },\n [\n _c(\"strong\", [\n _vm._v(\n \"Finding your account token\"\n )\n ])\n ]\n )\n ],\n 1\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_server_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_server_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update Library\",\n id: \"plex_update_library\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.server.updateLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"updateLibrary\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.server.updateLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_server_host\",\n label: \"Plex Media Server IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_server_host\",\n id: \"plex_server_host\",\n \"list-items\":\n _vm.notifiers.plex.server.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.server.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Media Server\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.1:32400, 192.168.1.2:32400)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"plex_server_https\",\n explanations: [\n \"use https for plex media server requests?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.https,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"https\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.https\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPMS-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Media Server(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Media Server\",\n id: \"testPMS\"\n },\n on: { click: _vm.testPMS }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clear-left\" }, [\n _vm._v(\" \")\n ])\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plexth\",\n attrs: { title: \"Plex Media Client\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Home Theater\")]\n )\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_client\",\n explanations: [\n \"Send Plex Home Theater notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.client.enabled,\n expression: \"notifiers.plex.client.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"plex_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"plex_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"plex_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_client_host\",\n label: \"Plex Home Theater IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_client_host\",\n id: \"plex_client_host\",\n \"list-items\":\n _vm.notifiers.plex.client.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.client.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Home Theater\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.100:3000, 192.168.1.101:3000)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_client_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_client_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPHT-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Home Theater(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Home Theater\",\n id: \"testPHT\"\n },\n on: { click: _vm.testPHT }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\"\n }\n }),\n _vm._v(\" \"),\n _vm._m(1)\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-emby\",\n attrs: { title: \"Emby\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://emby.media\" } },\n [_vm._v(\"Emby\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A home media server built using other popular open source technologies.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_emby\",\n explanations: [\"Send update commands to Emby?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"enabled\", $$v)\n },\n expression: \"notifiers.emby.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.emby.enabled,\n expression: \"notifiers.emby.enabled\"\n }\n ],\n attrs: { id: \"content_use_emby\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Emby IP:Port\",\n id: \"emby_host\",\n explanations: [\n \"host running Emby (eg. 192.168.1.100:8096)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"host\", $$v)\n },\n expression: \"notifiers.emby.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: { label: \"Api Key\", id: \"emby_apikey\" },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.apiKey,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"apiKey\", $$v)\n },\n expression: \"notifiers.emby.apiKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEMBY-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Emby\",\n id: \"testEMBY\"\n },\n on: { click: _vm.testEMBY }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJ\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJ, is the official media jukebox interface made available for the Popcorn Hour 200-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmj\",\n explanations: [\"Send update commands to NMJ?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"enabled\", $$v)\n },\n expression: \"notifiers.nmj.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmj.enabled,\n expression: \"notifiers.nmj.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmj\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmj_host\",\n explanations: [\n \"IP address of Popcorn 200-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"host\", $$v)\n },\n expression: \"notifiers.nmj.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"settingsNMJ\",\n label: \"Get settings\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Get Settings\",\n id: \"settingsNMJ\"\n },\n on: { click: _vm.settingsNMJ }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on and NMJ running.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ database\",\n id: \"nmj_database\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.database,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"database\", $$v)\n },\n expression: \"notifiers.nmj.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ mount\",\n id: \"nmj_mount\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.mount,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"mount\", $$v)\n },\n expression: \"notifiers.nmj.mount\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJ-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJ\",\n id: \"testNMJ\"\n },\n on: { click: _vm.testNMJ }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox v2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJv2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJv2, is the official media jukebox interface made available for the Popcorn Hour 300 & 400-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmjv2\",\n explanations: [\n \"Send popcorn hour (nmjv2) notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"enabled\", $$v)\n },\n expression: \"notifiers.nmjv2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmjv2.enabled,\n expression: \"notifiers.nmjv2.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmjv2\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmjv2_host\",\n explanations: [\n \"IP address of Popcorn 300/400-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"host\", $$v)\n },\n expression: \"notifiers.nmjv2.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_location\",\n label: \"Database location\"\n }\n },\n [\n _c(\n \"label\",\n {\n staticClass: \"space-right\",\n attrs: { for: \"NMJV2_DBLOC_A\" }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"local\",\n id: \"NMJV2_DBLOC_A\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Local Media\\n \"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n { attrs: { for: \"NMJV2_DBLOC_B\" } },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"network\",\n id: \"NMJV2_DBLOC_B\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Network Media\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_instance\",\n label: \"Database instance\"\n }\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { id: \"NMJv2db_instance\" }\n },\n [\n _c(\"option\", { attrs: { value: \"0\" } }, [\n _vm._v(\"#1 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"#2 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"2\" } }, [\n _vm._v(\"#3 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3\" } }, [\n _vm._v(\"#4 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"4\" } }, [\n _vm._v(\"#5 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"5\" } }, [\n _vm._v(\"#6 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"6\" } }, [\n _vm._v(\"#7 \")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"adjust this value if the wrong database is selected.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"get_nmjv2_find_database\",\n label: \"Find database\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Find Database\",\n id: \"settingsNMJv2\"\n },\n on: { click: _vm.settingsNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJv2 database\",\n id: \"nmjv2_database\",\n explanations: [\n \"automatically filled via the 'Find Database' buttons.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.database,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.nmjv2,\n \"database\",\n $$v\n )\n },\n expression: \"notifiers.nmjv2.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJv2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJv2\",\n id: \"testNMJv2\"\n },\n on: { click: _vm.testNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno1\",\n attrs: { title: \"Synology\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"The Synology DiskStation NAS.\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Indexer is the daemon running on the Synology NAS to build its media database.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"use_synoindex\",\n explanations: [\n \"Note: requires Medusa to be running on your Synology NAS.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synologyIndex.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synologyIndex,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.synologyIndex.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synologyIndex.enabled,\n expression: \"notifiers.synologyIndex.enabled\"\n }\n ],\n attrs: { id: \"content_use_synoindex\" }\n },\n [\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ]\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno2\",\n attrs: { title: \"Synology Indexer\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology Notifier\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Notifier is the notification system of Synology DSM\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_synologynotifier\",\n explanations: [\n \"Send notifications to the Synology Notifier?\",\n \"Note: requires Medusa to be running on your Synology DSM.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.synology, \"enabled\", $$v)\n },\n expression: \"notifiers.synology.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synology.enabled,\n expression: \"notifiers.synology.enabled\"\n }\n ],\n attrs: { id: \"content-use-synology-notifier\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"synology_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"synology_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pytivo\",\n attrs: { title: \"pyTivo\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://pytivo.sourceforge.net/wiki/index.php/PyTivo\"\n }\n },\n [_vm._v(\"pyTivo\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"pyTivo is both an HMO and GoBack server. This notifier will load the completed downloads to your Tivo.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pytivo\",\n explanations: [\"Send notifications to pyTivo?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"enabled\", $$v)\n },\n expression: \"notifiers.pyTivo.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pyTivo.enabled,\n expression: \"notifiers.pyTivo.enabled\"\n }\n ],\n attrs: { id: \"content-use-pytivo\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo IP:Port\",\n id: \"pytivo_host\",\n explanations: [\n \"host running pyTivo (eg. 192.168.1.1:9032)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"host\", $$v)\n },\n expression: \"notifiers.pyTivo.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo share name\",\n id: \"pytivo_name\",\n explanations: [\n \"(Messages & Settings > Account & System Information > System Information > DVR name)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.shareName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pyTivo,\n \"shareName\",\n $$v\n )\n },\n expression: \"notifiers.pyTivo.shareName\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Tivo name\",\n id: \"pytivo_tivo_name\",\n explanations: [\n \"value used in pyTivo Web Configuration to name the share.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"name\", $$v)\n },\n expression: \"notifiers.pyTivo.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"devices\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-growl\",\n attrs: { title: \"Growl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://growl.info/\" } },\n [_vm._v(\"Growl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A cross-platform unobtrusive global notification system.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_growl_client\",\n explanations: [\"Send Growl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"enabled\", $$v)\n },\n expression: \"notifiers.growl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.growl.enabled,\n expression: \"notifiers.growl.enabled\"\n }\n ],\n attrs: { id: \"content-use-growl-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"growl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"growl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"growl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.growl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.growl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Growl IP:Port\",\n id: \"growl_host\",\n explanations: [\n \"host running Growl (eg. 192.168.1.100:23053)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"host\", $$v)\n },\n expression: \"notifiers.growl.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"growl_password\",\n explanations: [\n \"may leave blank if Medusa is on the same host.\",\n \"otherwise Growl requires a password to be used.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.growl.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testGrowl-result\" }\n },\n [\n _vm._v(\n \"Click below to register and test Growl, this is required for Growl notifications to work.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Register Growl\",\n id: \"testGrowl\"\n },\n on: { click: _vm.testGrowl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-prowl\",\n attrs: { title: \"Prowl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://www.prowlapp.com/\" } },\n [_vm._v(\"Prowl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"A Growl client for iOS.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_prowl\",\n explanations: [\"Send Prowl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.prowl, \"enabled\", $$v)\n },\n expression: \"notifiers.prowl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.prowl.enabled,\n expression: \"notifiers.prowl.enabled\"\n }\n ],\n attrs: { id: \"content-use-prowl\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"prowl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"prowl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"prowl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.prowl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.prowl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Prowl Message Title\",\n id: \"prowl_message_title\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.messageTitle,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"messageTitle\",\n $$v\n )\n },\n expression: \"notifiers.prowl.messageTitle\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_api\",\n label: \"Api\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl_api\",\n id: \"prowl_api\",\n \"csv-enabled\": \"\",\n \"list-items\": _vm.notifiers.prowl.api\n },\n on: { change: _vm.onChangeProwlApi }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n [\n _vm._v(\n \"Prowl API(s) listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\n \" shows.\\n Your Prowl API key is available at:\\n \"\n ),\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://www.prowlapp.com/api_settings.php\"\n }\n },\n [\n _vm._v(\n \"\\n https://www.prowlapp.com/api_settings.php\"\n )\n ]\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_show_notification_list\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n placeholder: \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.prowlUpdateApiKeys($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl-show-list\",\n id: \"prowl-show-list\",\n \"list-items\":\n _vm.prowlSelectedShowApiKeys\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"prowl\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Configure per-show notifications here by entering Prowl API key(s), after selecting a show in the drop-down box.\\n Be sure to activate the 'Save for this show' button below after each entry.\\n \"\n ),\n _c(\"span\", [\n _vm._v(\n \"The values are automatically saved when adding the api key.\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_priority\",\n label: \"Prowl priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.prowl.priority,\n expression: \"notifiers.prowl.priority\"\n }\n ],\n staticClass: \"form-control input-sm\",\n attrs: {\n id: \"prowl_priority\",\n name: \"prowl_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.prowl,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.prowlPriorityOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Prowl messages from Medusa.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testProwl-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Prowl\",\n id: \"testProwl\"\n },\n on: { click: _vm.testProwl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-libnotify\",\n attrs: { title: \"Libnotify\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://library.gnome.org/devel/libnotify/\"\n }\n },\n [_vm._v(\"Libnotify\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"p\",\n [\n _vm._v(\n \"The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package \"\n ),\n _c(\n \"app-link\",\n { attrs: { href: \"apt:python-notify\" } },\n [_vm._v(\"python-notify\")]\n ),\n _vm._v(\").\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_libnotify_client\",\n explanations: [\"Send Libnotify notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.libnotify.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.libnotify.enabled,\n expression: \"notifiers.libnotify.enabled\"\n }\n ],\n attrs: { id: \"content-use-libnotify\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"libnotify_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"libnotify_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"libnotify_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testLibnotify-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Libnotify\",\n id: \"testLibnotify\"\n },\n on: { click: _vm.testLibnotify }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushover\",\n attrs: { title: \"Pushover\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushover.net/\" } },\n [_vm._v(\"Pushover\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushover makes it easy to send real-time notifications to your Android and iOS devices.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushover_client\",\n explanations: [\"Send Pushover notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushover, \"enabled\", $$v)\n },\n expression: \"notifiers.pushover.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushover.enabled,\n expression: \"notifiers.pushover.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushover\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushover_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushover_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushover_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushover User Key\",\n id: \"pushover_userkey\",\n explanations: [\n \"User Key of your Pushover account\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.userKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"userKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.userKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Pushover API Key\",\n id: \"pushover_apikey\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.apiKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"apiKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.apiKey\"\n }\n },\n [\n _c(\n \"span\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://pushover.net/apps/build/\"\n }\n },\n [_c(\"b\", [_vm._v(\"Click here\")])]\n ),\n _vm._v(\" to create a Pushover API key\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_device\",\n label: \"Pushover Devices\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"pushover_device\",\n id: \"pushover_device\",\n \"list-items\":\n _vm.notifiers.pushover.device\n },\n on: {\n change: function($event) {\n _vm.notifiers.pushover.device = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"List of pushover devices you want to send notifications to\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_sound\",\n label: \"Pushover notification sound\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.pushover.sound,\n expression: \"notifiers.pushover.sound\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_sound\",\n name: \"pushover_sound\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"sound\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.pushoverSoundOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"Choose notification sound to use\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_priority\",\n label: \"Pushover notification priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushover.priority,\n expression:\n \"notifiers.pushover.priority\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_priority\",\n name: \"pushover_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushoverPriorityOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Pushover messages from Medusa\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushover-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushover\",\n id: \"testPushover\"\n },\n on: { click: _vm.testPushover }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-boxcar2\",\n attrs: { title: \"Boxcar 2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://new.boxcar.io/\" } },\n [_vm._v(\"Boxcar 2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Read your messages where and when you want them!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_boxcar2\",\n explanations: [\"Send boxcar2 notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.boxcar2, \"enabled\", $$v)\n },\n expression: \"notifiers.boxcar2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.boxcar2.enabled,\n expression: \"notifiers.boxcar2.enabled\"\n }\n ],\n attrs: { id: \"content-use-boxcar2-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"boxcar2_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"boxcar2_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"boxcar2_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.boxcar2\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Boxcar2 Access token\",\n id: \"boxcar2_accesstoken\",\n explanations: [\n \"access token for your Boxcar account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.accessToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"accessToken\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.accessToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testBoxcar2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Boxcar\",\n id: \"testBoxcar2\"\n },\n on: { click: _vm.testBoxcar2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushalot\",\n attrs: { title: \"Pushalot\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushalot.com\" } },\n [_vm._v(\"Pushalot\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushalot is a platform for receiving custom push notifications to connected devices running Windows Phone or Windows 8.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushalot\",\n explanations: [\"Send Pushalot notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushalot, \"enabled\", $$v)\n },\n expression: \"notifiers.pushalot.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushalot.enabled,\n expression: \"notifiers.pushalot.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushalot-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushalot_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushalot_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushalot_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushalot authorization token\",\n id: \"pushalot_authorizationtoken\",\n explanations: [\n \"authorization token of your Pushalot account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.authToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"authToken\",\n $$v\n )\n },\n expression: \"notifiers.pushalot.authToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushalot-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushalot\",\n id: \"testPushalot\"\n },\n on: { click: _vm.testPushalot }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushbullet\",\n attrs: { title: \"Pushbullet\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.pushbullet.com\" } },\n [_vm._v(\"Pushbullet\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushbullet is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushbullet\",\n explanations: [\"Send pushbullet notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushbullet.enabled,\n expression: \"notifiers.pushbullet.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushbullet-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushbullet_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushbullet_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushbullet_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushbullet API key\",\n id: \"pushbullet_api\",\n explanations: [\n \"API key of your Pushbullet account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushbullet_device_list\",\n label: \"Pushbullet devices\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Update device list\",\n id: \"get-pushbullet-devices\"\n },\n on: {\n click: _vm.getPushbulletDeviceOptions\n }\n }),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushbullet.device,\n expression:\n \"notifiers.pushbullet.device\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushbullet_device_list\",\n name: \"pushbullet_device_list\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"device\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushbulletDeviceOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value },\n on: {\n change: function($event) {\n _vm.pushbulletTestInfo =\n \"Don't forget to save your new pushbullet settings.\"\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"select device you wish to push to.\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushbullet-resultsfsf\" }\n },\n [_vm._v(_vm._s(_vm.pushbulletTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushbullet\",\n id: \"testPushbullet\"\n },\n on: { click: _vm.testPushbulletApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-join\",\n attrs: { title: \"Join\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://joaoapps.com/join/\" } },\n [_vm._v(\"Join\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Join is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_join\",\n explanations: [\"Send join notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"enabled\", $$v)\n },\n expression: \"notifiers.join.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.join.enabled,\n expression: \"notifiers.join.enabled\"\n }\n ],\n attrs: { id: \"content-use-join-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"join_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"join_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"join_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.join.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.join.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join API key\",\n id: \"join_api\",\n explanations: [\n \"API key of your Join account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"api\", $$v)\n },\n expression: \"notifiers.join.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join Device ID(s) key\",\n id: \"join_device\",\n explanations: [\n \"Enter DeviceID of the device(s) you wish to send notifications to, comma separated if using multiple.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.device,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"device\", $$v)\n },\n expression: \"notifiers.join.device\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testJoin-result\" }\n },\n [_vm._v(_vm._s(_vm.joinTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Join\",\n id: \"testJoin\"\n },\n on: { click: _vm.testJoinApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-freemobile\",\n attrs: { title: \"Free Mobile\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://mobile.free.fr/\" } },\n [_vm._v(\"Free Mobile\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Free Mobile is a famous French cellular network provider. It provides to their customer a free SMS API.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_freemobile\",\n explanations: [\"Send SMS notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.freemobile.enabled,\n expression: \"notifiers.freemobile.enabled\"\n }\n ],\n attrs: { id: \"content-use-freemobile-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"freemobile_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"freemobile_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"freemobile_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile customer ID\",\n id: \"freemobile_id\",\n explanations: [\n \"It's your Free Mobile customer ID (8 digits)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.id,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"id\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile API Key\",\n id: \"freemobile_apikey\",\n explanations: [\n \"Find your API Key in your customer portal.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testFreeMobile-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test SMS\",\n id: \"testFreeMobile\"\n },\n on: { click: _vm.testFreeMobile }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-telegram\",\n attrs: { title: \"Telegram\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://telegram.org/\" } },\n [_vm._v(\"Telegram\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Telegram is a cloud-based instant messaging service.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_telegram\",\n explanations: [\"Send Telegram notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"enabled\", $$v)\n },\n expression: \"notifiers.telegram.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.telegram.enabled,\n expression: \"notifiers.telegram.enabled\"\n }\n ],\n attrs: { id: \"content-use-telegram-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"telegram_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"telegram_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"telegram_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"User/group ID\",\n id: \"telegram_id\",\n explanations: [\n \"Contact @myidbot on Telegram to get an ID\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.id,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"id\", $$v)\n },\n expression: \"notifiers.telegram.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot API token\",\n id: \"telegram_apikey\",\n explanations: [\n \"Contact @BotFather on Telegram to set up one\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"api\", $$v)\n },\n expression: \"notifiers.telegram.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTelegram-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Telegram\",\n id: \"testTelegram\"\n },\n on: { click: _vm.testTelegram }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-discord\",\n attrs: { title: \"Discord\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://discordapp.com/\" } },\n [_vm._v(\"Discord\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Discord is a cloud-based All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone..\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_discord\",\n explanations: [\"Send Discord notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"enabled\", $$v)\n },\n expression: \"notifiers.discord.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.discord.enabled,\n expression: \"notifiers.discord.enabled\"\n }\n ],\n attrs: { id: \"content-use-discord-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"discord_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.discord.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"discord_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"discord_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.discord\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Channel webhook\",\n id: \"discord_webhook\",\n explanations: [\n \"Add a webhook to a channel, use the returned url here\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.discord.webhook\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Text to speech\",\n id: \"discord_tts\",\n explanations: [\n \"Use discord text to speech feature\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.tts,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"tts\", $$v)\n },\n expression: \"notifiers.discord.tts\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot username\",\n id: \"discord_name\",\n explanations: [\n \"Create a username for the Discord Bot to use\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"name\", $$v)\n },\n expression: \"notifiers.discord.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testDiscord-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Discord\",\n id: \"testDiscord\"\n },\n on: { click: _vm.testDiscord }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"social\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-twitter\",\n attrs: { title: \"Twitter\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.twitter.com\" } },\n [_vm._v(\"Twitter\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A social networking and microblogging service, enabling its users to send and read other users' messages called tweets.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_twitter\",\n explanations: [\n \"Should Medusa post tweets on Twitter?\",\n \"Note: you may want to use a secondary account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"enabled\", $$v)\n },\n expression: \"notifiers.twitter.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.twitter.enabled,\n expression: \"notifiers.twitter.enabled\"\n }\n ],\n attrs: { id: \"content-use-twitter\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"twitter_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.twitter.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"twitter_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"twitter_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.twitter\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Send direct message\",\n id: \"twitter_usedm\",\n explanations: [\n \"send a notification via Direct Message, not via status update\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.directMessage,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"directMessage\",\n $$v\n )\n },\n expression: \"notifiers.twitter.directMessage\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Send DM to\",\n id: \"twitter_dmto\",\n explanations: [\n \"Twitter account to send Direct Messages to (must follow you)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.dmto,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"dmto\", $$v)\n },\n expression: \"notifiers.twitter.dmto\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep1\",\n label: \"Step 1\"\n }\n },\n [\n _c(\n \"span\",\n { staticStyle: { \"font-size\": \"11px\" } },\n [\n _vm._v(\n 'Click the \"Request Authorization\" button. '\n ),\n _c(\"br\"),\n _vm._v(\n \"This will open a new page containing an auth key. \"\n ),\n _c(\"br\"),\n _vm._v(\n \"Note: if nothing happens check your popup blocker.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Request Authorization\",\n id: \"twitter-step-1\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep1($event)\n }\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep2\",\n label: \"Step 2\"\n }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.twitterKey,\n expression: \"twitterKey\"\n }\n ],\n staticClass:\n \"form-control input-sm max-input350\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n id: \"twitter_key\",\n placeholder:\n \"Enter the key Twitter gave you, and click 'Verify Key'\"\n },\n domProps: { value: _vm.twitterKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.twitterKey = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Verify Key\",\n id: \"twitter-step-2\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep2($event)\n }\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"testNotification\",\n attrs: { id: \"testTwitter-result\" },\n domProps: {\n innerHTML: _vm._s(_vm.twitterTestInfo)\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Twitter\",\n id: \"testTwitter\"\n },\n on: { click: _vm.twitterTest }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-trakt\",\n attrs: { title: \"Trakt\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://trakt.tv/\" } },\n [_vm._v(\"Trakt\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"trakt helps keep a record of what TV shows and movies you are watching. Based on your favorites, trakt recommends additional shows and movies you'll enjoy!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_trakt\",\n explanations: [\"Send Trakt.tv notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"enabled\", $$v)\n },\n expression: \"notifiers.trakt.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.enabled,\n expression: \"notifiers.trakt.enabled\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"trakt_username\",\n explanations: [\n \"username of your Trakt account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.trakt.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_pin\",\n label: \"Trakt PIN\"\n }\n },\n [\n _c(\"input\", {\n staticClass:\n \"form-control input-sm max-input250\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n name: \"trakt_pin\",\n id: \"trakt_pin\",\n value: \"\",\n disabled: _vm.notifiers.trakt.accessToken\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: _vm.traktNewTokenMessage,\n id: \"TraktGetPin\"\n },\n on: { click: _vm.TraktGetPin }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa hide\",\n attrs: {\n type: \"button\",\n value: \"Authorize Medusa\",\n id: \"authTrakt\"\n },\n on: { click: _vm.authTrakt }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"PIN code to authorize Medusa to access Trakt on your behalf.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n label: \"API Timeout\",\n id: \"trakt_timeout\",\n explanations: [\n \"Seconds to wait for Trakt API to respond. (Use 0 to wait forever)\"\n ]\n },\n model: {\n value: _vm.notifiers.trakt.timeout,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"timeout\",\n $$v\n )\n },\n expression: \"notifiers.trakt.timeout\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Default indexer\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.defaultIndexer,\n expression:\n \"notifiers.trakt.defaultIndexer\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_default_indexer\",\n name: \"trakt_default_indexer\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"defaultIndexer\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktIndexersOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync libraries\",\n id: \"trakt_sync\",\n explanations: [\n \"Sync your Medusa show library with your Trakt collection.\",\n \"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\",\n \"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.sync,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"sync\", $$v)\n },\n expression: \"notifiers.trakt.sync\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.sync,\n expression: \"notifiers.trakt.sync\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove Episodes From Collection\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"Remove an Episode from your Trakt Collection if it is not in your Medusa Library.\",\n \"Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync watchlist\",\n id: \"trakt_sync_watchlist\",\n explanations: [\n \"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\",\n \"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\",\n \"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.syncWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncWatchlist\",\n $$v\n )\n },\n expression: \"notifiers.trakt.syncWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.syncWatchlist,\n expression:\n \"notifiers.trakt.syncWatchlist\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Watchlist add method\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.methodAdd,\n expression:\n \"notifiers.trakt.methodAdd\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_method_add\",\n name: \"trakt_method_add\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"methodAdd\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktMethodOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"method in which to download episodes for new shows.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove episode\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"remove an episode from your watchlist after it's downloaded.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove series\",\n id: \"trakt_remove_serieslist\",\n explanations: [\n \"remove the whole series from your watchlist after any download.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeSerieslist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeSerieslist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeSerieslist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove watched show\",\n id: \"trakt_remove_show_from_application\",\n explanations: [\n \"remove the show from Medusa if it's ended and completely watched\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt\n .removeShowFromApplication,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeShowFromApplication\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeShowFromApplication\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Start paused\",\n id: \"trakt_start_paused\",\n explanations: [\n \"shows grabbed from your trakt watchlist start paused.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.startPaused,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"startPaused\",\n $$v\n )\n },\n expression: \"notifiers.trakt.startPaused\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Trakt blackList name\",\n id: \"trakt_blacklist_name\",\n explanations: [\n \"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.blacklistName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"blacklistName\",\n $$v\n )\n },\n expression: \"notifiers.trakt.blacklistName\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTrakt-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Trakt\",\n id: \"testTrakt\"\n },\n on: { click: _vm.testTrakt }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Force Sync\",\n id: \"forceSync\"\n },\n on: { click: _vm.traktForceSync }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", id: \"trakt_pin_url\" },\n domProps: { value: _vm.notifiers.trakt.pinUrl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-email\",\n attrs: { title: \"Email\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://en.wikipedia.org/wiki/Comparison_of_webmail_providers\"\n }\n },\n [_vm._v(\"Email\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Allows configuration of email notifications on a per show basis.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_email\",\n explanations: [\"Send email notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"enabled\", $$v)\n },\n expression: \"notifiers.email.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.email.enabled,\n expression: \"notifiers.email.enabled\"\n }\n ],\n attrs: { id: \"content-use-email\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"email_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"email_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"email_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.email\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.email.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP host\",\n id: \"email_host\",\n explanations: [\n \"hostname of your SMTP email server.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"host\", $$v)\n },\n expression: \"notifiers.email.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n min: 1,\n step: 1,\n label: \"SMTP port\",\n id: \"email_port\",\n explanations: [\n \"port number used to connect to your SMTP host.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.port,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"port\", $$v)\n },\n expression: \"notifiers.email.port\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP from\",\n id: \"email_from\",\n explanations: [\n \"sender email address, some hosts require a real address.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.from,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"from\", $$v)\n },\n expression: \"notifiers.email.from\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Use TLS\",\n id: \"email_tls\",\n explanations: [\"check to use TLS encryption.\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.tls,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"tls\", $$v)\n },\n expression: \"notifiers.email.tls\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP username\",\n id: \"email_username\",\n explanations: [\n \"(optional) your SMTP server username.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.email.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"SMTP password\",\n id: \"email_password\",\n explanations: [\n \"(optional) your SMTP server password.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.email.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_list\",\n label: \"Global email list\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.notifiers.email.addressList\n },\n on: { change: _vm.emailUpdateAddressList }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Email Subject\",\n id: \"email_subject\",\n explanations: [\n \"Use a custom subject for some privacy protection?\",\n \"(Leave blank for the default Medusa subject)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.subject,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"subject\",\n $$v\n )\n },\n expression: \"notifiers.email.subject\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_show\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n placeholder: \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.emailUpdateShowEmail($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.emailSelectedShowAdresses\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"email\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEmail-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Email\",\n id: \"testEmail\"\n },\n on: { click: _vm.testEmail }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-slack\",\n attrs: { title: \"Slack\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://slack.com\" } },\n [_vm._v(\"Slack\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Slack is a messaging app for teams.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_slack_client\",\n explanations: [\"Send Slack notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.slack, \"enabled\", $$v)\n },\n expression: \"notifiers.slack.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.slack.enabled,\n expression: \"notifiers.slack.enabled\"\n }\n ],\n attrs: { id: \"content-use-slack-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"slack_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"slack_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"slack_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.slack\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.slack.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Slack Incoming Webhook\",\n id: \"slack_webhook\",\n explanations: [\n \"Create an incoming webhook, to communicate with your slack channel.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.slack.webhook\"\n }\n },\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://my.slack.com/services/new/incoming-webhook\"\n }\n },\n [\n _vm._v(\n \"https://my.slack.com/services/new/incoming-webhook/\"\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testSlack-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Slack\",\n id: \"testSlack\"\n },\n on: { click: _vm.testSlack }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n }),\n _vm._v(\" \"),\n _c(\"br\")\n ])\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clearfix\" })\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"label\",\n { staticClass: \"col-sm-2 control-label\", attrs: { for: \"kodi_host\" } },\n [_c(\"span\", [_vm._v(\"KODI IP:Port\")])]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"clear-left\" }, [\n _c(\"p\", [\n _c(\"b\", [_vm._v(\"Note:\")]),\n _vm._v(\" some Plex Home Theaters \"),\n _c(\"b\", { staticClass: \"boldest\" }, [_vm._v(\"do not\")]),\n _vm._v(\" support notifications e.g. Plexapp for Samsung TVs\")\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/config-notifications.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/themes/light/assets/js/medusa-runtime.js b/themes/light/assets/js/medusa-runtime.js index a3e17bc5cb..9d8a22f348 100644 --- a/themes/light/assets/js/medusa-runtime.js +++ b/themes/light/assets/js/medusa-runtime.js @@ -104,7 +104,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(f /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api.js */ \"./src/api.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ \"./src/components/helpers/index.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'config-notifications',\n components: {\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"AppLink\"],\n ConfigTemplate: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTemplate\"],\n ConfigTextbox: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTextbox\"],\n ConfigTextboxNumber: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTextboxNumber\"],\n ConfigToggleSlider: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigToggleSlider\"],\n SelectList: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"SelectList\"],\n ShowSelector: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ShowSelector\"]\n },\n\n data() {\n return {\n prowlSelectedShow: null,\n prowlSelectedShowApiKeys: [],\n prowlPriorityOptions: [{\n text: 'Very Low',\n value: -2\n }, {\n text: 'Moderate',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverPriorityOptions: [{\n text: 'Lowest',\n value: -2\n }, {\n text: 'Low',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverSoundOptions: [{\n text: 'Default',\n value: 'default'\n }, {\n text: 'Pushover',\n value: 'pushover'\n }, {\n text: 'Bike',\n value: 'bike'\n }, {\n text: 'Bugle',\n value: 'bugle'\n }, {\n text: 'Cash Register',\n value: 'cashregister'\n }, {\n text: 'classical',\n value: 'classical'\n }, {\n text: 'Cosmic',\n value: 'cosmic'\n }, {\n text: 'Falling',\n value: 'falling'\n }, {\n text: 'Gamelan',\n value: 'gamelan'\n }, {\n text: 'Incoming',\n value: 'incoming'\n }, {\n text: 'Intermission',\n value: 'intermission'\n }, {\n text: 'Magic',\n value: 'magic'\n }, {\n text: 'Mechanical',\n value: 'mechanical'\n }, {\n text: 'Piano Bar',\n value: 'pianobar'\n }, {\n text: 'Siren',\n value: 'siren'\n }, {\n text: 'Space Alarm',\n value: 'spacealarm'\n }, {\n text: 'Tug Boat',\n value: 'tugboat'\n }, {\n text: 'Alien Alarm (long)',\n value: 'alien'\n }, {\n text: 'Climb (long)',\n value: 'climb'\n }, {\n text: 'Persistent (long)',\n value: 'persistant'\n }, {\n text: 'Pushover Echo (long)',\n value: 'echo'\n }, {\n text: 'Up Down (long)',\n value: 'updown'\n }, {\n text: 'None (silent)',\n value: 'none'\n }],\n pushbulletDeviceOptions: [{\n text: 'All devices',\n value: ''\n }],\n traktMethodOptions: [{\n text: 'Skip all',\n value: 0\n }, {\n text: 'Download pilot only',\n value: 1\n }, {\n text: 'Get whole show',\n value: 2\n }],\n pushbulletTestInfo: 'Click below to test.',\n joinTestInfo: 'Click below to test.',\n twitterTestInfo: 'Click below to test.',\n twitterKey: '',\n emailSelectedShow: null,\n emailSelectedShowAdresses: []\n };\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])(['config', 'indexers', 'notifiers']),\n\n traktNewTokenMessage() {\n const {\n accessToken\n } = this.notifiers.trakt;\n return true ? 'New ' : undefined;\n },\n\n traktIndexersOptions() {\n const {\n indexers\n } = this;\n const {\n traktIndexers\n } = indexers.main;\n const validTraktIndexer = Object.keys(indexers.indexers).filter(k => traktIndexers[k]);\n return validTraktIndexer.map(indexer => {\n return {\n text: indexer,\n value: indexers.indexers[indexer].id\n };\n });\n }\n\n },\n\n beforeMount() {\n // Wait for the next tick, so the component is rendered\n this.$nextTick(() => {\n $('#config-components').tabs();\n });\n },\n\n mounted() {\n // TODO: vueify this.\n $('#trakt_pin').on('keyup change', () => {\n if ($('#trakt_pin').val().length === 0) {\n $('#TraktGetPin').removeClass('hide');\n $('#authTrakt').addClass('hide');\n } else {\n $('#TraktGetPin').addClass('hide');\n $('#authTrakt').removeClass('hide');\n }\n });\n },\n\n methods: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapActions\"])(['getShows', 'setConfig']),\n\n onChangeProwlApi(items) {\n this.notifiers.prowl.api = items.map(item => item.value);\n },\n\n savePerShowNotifyList(listType, values) {\n const {\n emailSelectedShow,\n prowlSelectedShow\n } = this;\n const form = new FormData();\n\n if (listType === 'prowl') {\n form.set('show', prowlSelectedShow);\n form.set('prowlAPIs', values.map(apiKey => apiKey.value));\n } else {\n form.set('show', emailSelectedShow);\n form.set('emails', values.map(apiKey => apiKey.value));\n } // Save the list\n\n\n _api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"].post('home/saveShowNotifyList', form);\n },\n\n async prowlUpdateApiKeys(selectedShow) {\n this.prowlSelectedShow = selectedShow;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].prowl_notify_list ? response.data[selectedShow].prowl_notify_list.split(',') : [];\n this.prowlSelectedShowApiKeys = selectedShow ? list : [];\n }\n },\n\n async emailUpdateShowEmail(selectedShow) {\n this.emailSelectedShow = selectedShow;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].list ? response.data[selectedShow].list.split(',') : [];\n this.emailSelectedShowAdresses = selectedShow ? list : [];\n }\n },\n\n emailUpdateAddressList(items) {\n this.notifiers.email.addressList = items.map(x => x.value);\n },\n\n async getPushbulletDeviceOptions() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/getPushbulletDevices', {\n params: {\n api: pushbulletApiKey\n }\n });\n const options = [];\n const {\n data\n } = response;\n\n if (!data) {\n return false;\n }\n\n options.push({\n text: 'All devices',\n value: ''\n });\n\n for (const device of data.devices) {\n if (device.active === true) {\n options.push({\n text: device.nickname,\n value: device.iden\n });\n }\n }\n\n this.pushbulletDeviceOptions = options;\n this.pushbulletTestInfo = 'Device list updated. Please choose a device to push to.';\n },\n\n async testPushbulletApi() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testPushbullet', {\n params: {\n api: pushbulletApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.pushbulletTestInfo = data;\n }\n },\n\n async testJoinApi() {\n const {\n api: joinApiKey\n } = this.notifiers.join;\n\n if (!joinApiKey) {\n this.joinTestInfo = 'You didn\\'t supply a Join api key';\n $('#join_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testJoin', {\n params: {\n api: joinApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.joinTestInfo = data;\n }\n },\n\n async twitterStep1() {\n this.twitterTestInfo = MEDUSA.config.loading;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/twitterStep1');\n const {\n data\n } = response;\n window.open(data);\n this.twitterTestInfo = 'Step1: Confirm Authorization';\n },\n\n async twitterStep2() {\n const twitter = {};\n const {\n twitterKey\n } = this;\n twitter.key = twitterKey;\n\n if (twitter.key) {\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/twitterStep2', {\n params: {\n key: twitter.key\n }\n });\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } else {\n this.twitterTestInfo = 'Please fill out the necessary fields above.';\n }\n },\n\n async twitterTest() {\n try {\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testTwitter');\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } catch (error) {\n this.twitterTestInfo = 'Error while trying to request for a test on the twitter api.';\n }\n },\n\n async save() {\n const {\n notifiers,\n setConfig\n } = this; // Disable the save button until we're done.\n\n this.saving = true;\n const section = 'main';\n\n try {\n await setConfig({\n section,\n config: {\n notifiers\n }\n });\n this.$snotify.success('Saved Notifiers config', 'Saved', {\n timeout: 5000\n });\n } catch (error) {\n this.$snotify.error('Error while trying to save notifiers config', 'Error');\n } finally {\n this.saving = false;\n }\n },\n\n testGrowl() {\n const growl = {};\n growl.host = $.trim($('#growl_host').val());\n growl.password = $.trim($('#growl_password').val());\n\n if (!growl.host) {\n $('#testGrowl-result').html('Please fill out the necessary fields above.');\n $('#growl_host').addClass('warning');\n return;\n }\n\n $('#growl_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testGrowl-result').html(MEDUSA.config.loading);\n $.get('home/testGrowl', {\n host: growl.host,\n password: growl.password\n }).done(data => {\n $('#testGrowl-result').html(data);\n $('#testGrowl').prop('disabled', false);\n });\n },\n\n testProwl() {\n const prowl = {};\n prowl.api = $.trim($('#prowl_api').find('input').val());\n prowl.priority = $('#prowl_priority').find('input').val();\n\n if (!prowl.api) {\n $('#testProwl-result').html('Please fill out the necessary fields above.');\n $('#prowl_api').find('input').addClass('warning');\n return;\n }\n\n $('#prowl_api').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testProwl-result').html(MEDUSA.config.loading);\n $.get('home/testProwl', {\n prowl_api: prowl.api,\n // eslint-disable-line camelcase\n prowl_priority: prowl.priority // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testProwl-result').html(data);\n $('#testProwl').prop('disabled', false);\n });\n },\n\n testKODI() {\n const kodi = {};\n const kodiHostInput = $('#kodi_host').find('input');\n const kodiHosts = kodiHostInput.toArray().map(value => value.value).filter(item => item !== '');\n kodi.host = kodiHosts.join(',');\n kodi.username = $.trim($('#kodi_username').val());\n kodi.password = $.trim($('#kodi_password').val());\n\n if (!kodi.host) {\n $('#testKODI-result').html('Please fill out the necessary fields above.');\n $('#kodi_host').find('input').addClass('warning');\n return;\n }\n\n $('#kodi_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testKODI-result').html(MEDUSA.config.loading);\n $.get('home/testKODI', {\n host: kodi.host,\n username: kodi.username,\n password: kodi.password\n }).done(data => {\n $('#testKODI-result').html(data);\n $('#testKODI').prop('disabled', false);\n });\n },\n\n testPHT() {\n const plex = {};\n plex.client = {};\n const plexHostsInput = $('#plex_client_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.client.host = plexHosts.join(',');\n plex.client.username = $.trim($('#plex_client_username').val());\n plex.client.password = $.trim($('#plex_client_password').val());\n\n if (!plex.client.host) {\n $('#testPHT-result').html('Please fill out the necessary fields above.');\n $('#plex_client_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_client_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPHT-result').html(MEDUSA.config.loading);\n $.get('home/testPHT', {\n host: plex.client.host,\n username: plex.client.username,\n password: plex.client.password\n }).done(data => {\n $('#testPHT-result').html(data);\n $('#testPHT').prop('disabled', false);\n });\n },\n\n testPMS() {\n const plex = {};\n plex.server = {};\n const plexHostsInput = $('#plex_server_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.server.host = plexHosts.join(',');\n plex.server.username = $.trim($('#plex_server_username').val());\n plex.server.password = $.trim($('#plex_server_password').val());\n plex.server.token = $.trim($('#plex_server_token').val());\n\n if (!plex.server.host) {\n $('#testPMS-result').html('Please fill out the necessary fields above.');\n $('#plex_server_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_server_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPMS-result').html(MEDUSA.config.loading);\n $.get('home/testPMS', {\n host: plex.server.host,\n username: plex.server.username,\n password: plex.server.password,\n plex_server_token: plex.server.token // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testPMS-result').html(data);\n $('#testPMS').prop('disabled', false);\n });\n },\n\n testEMBY() {\n const emby = {};\n emby.host = $('#emby_host').val();\n emby.apikey = $('#emby_apikey').val();\n\n if (!emby.host || !emby.apikey) {\n $('#testEMBY-result').html('Please fill out the necessary fields above.');\n $('#emby_host').addRemoveWarningClass(emby.host);\n $('#emby_apikey').addRemoveWarningClass(emby.apikey);\n return;\n }\n\n $('#emby_host,#emby_apikey').children('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testEMBY-result').html(MEDUSA.config.loading);\n $.get('home/testEMBY', {\n host: emby.host,\n emby_apikey: emby.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testEMBY-result').html(data);\n $('#testEMBY').prop('disabled', false);\n });\n },\n\n testBoxcar2() {\n const boxcar2 = {};\n boxcar2.accesstoken = $.trim($('#boxcar2_accesstoken').val());\n\n if (!boxcar2.accesstoken) {\n $('#testBoxcar2-result').html('Please fill out the necessary fields above.');\n $('#boxcar2_accesstoken').addClass('warning');\n return;\n }\n\n $('#boxcar2_accesstoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testBoxcar2-result').html(MEDUSA.config.loading);\n $.get('home/testBoxcar2', {\n accesstoken: boxcar2.accesstoken\n }).done(data => {\n $('#testBoxcar2-result').html(data);\n $('#testBoxcar2').prop('disabled', false);\n });\n },\n\n testPushover() {\n const pushover = {};\n pushover.userkey = $('#pushover_userkey').val();\n pushover.apikey = $('#pushover_apikey').val();\n\n if (!pushover.userkey || !pushover.apikey) {\n $('#testPushover-result').html('Please fill out the necessary fields above.');\n $('#pushover_userkey').addRemoveWarningClass(pushover.userkey);\n $('#pushover_apikey').addRemoveWarningClass(pushover.apikey);\n return;\n }\n\n $('#pushover_userkey,#pushover_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushover-result').html(MEDUSA.config.loading);\n $.get('home/testPushover', {\n userKey: pushover.userkey,\n apiKey: pushover.apikey\n }).done(data => {\n $('#testPushover-result').html(data);\n $('#testPushover').prop('disabled', false);\n });\n },\n\n testLibnotify() {\n $('#testLibnotify-result').html(MEDUSA.config.loading);\n $.get('home/testLibnotify', data => {\n $('#testLibnotify-result').html(data);\n });\n },\n\n settingsNMJ() {\n const nmj = {};\n nmj.host = $('#nmj_host').val();\n\n if (nmj.host) {\n $('#testNMJ-result').html(MEDUSA.config.loading);\n $.get('home/settingsNMJ', {\n host: nmj.host\n }, data => {\n if (data === null) {\n $('#nmj_database').removeAttr('readonly');\n $('#nmj_mount').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJ-result').html(JSONData.message);\n $('#nmj_database').val(JSONData.database);\n $('#nmj_mount').val(JSONData.mount);\n\n if (JSONData.database) {\n $('#nmj_database').prop('readonly', true);\n } else {\n $('#nmj_database').removeAttr('readonly');\n }\n\n if (JSONData.mount) {\n $('#nmj_mount').prop('readonly', true);\n } else {\n $('#nmj_mount').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmj_host').focus();\n }\n },\n\n testNMJ() {\n const nmj = {};\n nmj.host = $.trim($('#nmj_host').val());\n nmj.database = $('#nmj_database').val();\n nmj.mount = $('#nmj_mount').val();\n\n if (nmj.host) {\n $('#nmj_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJ-result').html(MEDUSA.config.loading);\n $.get('home/testNMJ', {\n host: nmj.host,\n database: nmj.database,\n mount: nmj.mount\n }).done(data => {\n $('#testNMJ-result').html(data);\n $('#testNMJ').prop('disabled', false);\n });\n } else {\n $('#testNMJ-result').html('Please fill out the necessary fields above.');\n $('#nmj_host').addClass('warning');\n }\n },\n\n settingsNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $('#nmjv2_host').val();\n\n if (nmjv2.host) {\n $('#testNMJv2-result').html(MEDUSA.config.loading);\n nmjv2.dbloc = '';\n const radios = document.getElementsByName('nmjv2_dbloc');\n\n for (let i = 0, len = radios.length; i < len; i++) {\n if (radios[i].checked) {\n nmjv2.dbloc = radios[i].value;\n break;\n }\n }\n\n nmjv2.dbinstance = $('#NMJv2db_instance').val();\n $.get('home/settingsNMJv2', {\n host: nmjv2.host,\n dbloc: nmjv2.dbloc,\n instance: nmjv2.dbinstance\n }, data => {\n if (data === null) {\n $('#nmjv2_database').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJv2-result').html(JSONData.message);\n $('#nmjv2_database').val(JSONData.database);\n\n if (JSONData.database) {\n $('#nmjv2_database').prop('readonly', true);\n } else {\n $('#nmjv2_database').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmjv2_host').focus();\n }\n },\n\n testNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $.trim($('#nmjv2_host').val());\n\n if (nmjv2.host) {\n $('#nmjv2_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJv2-result').html(MEDUSA.config.loading);\n $.get('home/testNMJv2', {\n host: nmjv2.host\n }).done(data => {\n $('#testNMJv2-result').html(data);\n $('#testNMJv2').prop('disabled', false);\n });\n } else {\n $('#testNMJv2-result').html('Please fill out the necessary fields above.');\n $('#nmjv2_host').addClass('warning');\n }\n },\n\n testFreeMobile() {\n const freemobile = {};\n freemobile.id = $.trim($('#freemobile_id').val());\n freemobile.apikey = $.trim($('#freemobile_apikey').val());\n\n if (!freemobile.id || !freemobile.apikey) {\n $('#testFreeMobile-result').html('Please fill out the necessary fields above.');\n\n if (freemobile.id) {\n $('#freemobile_id').removeClass('warning');\n } else {\n $('#freemobile_id').addClass('warning');\n }\n\n if (freemobile.apikey) {\n $('#freemobile_apikey').removeClass('warning');\n } else {\n $('#freemobile_apikey').addClass('warning');\n }\n\n return;\n }\n\n $('#freemobile_id,#freemobile_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testFreeMobile-result').html(MEDUSA.config.loading);\n $.get('home/testFreeMobile', {\n freemobile_id: freemobile.id,\n // eslint-disable-line camelcase\n freemobile_apikey: freemobile.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testFreeMobile-result').html(data);\n $('#testFreeMobile').prop('disabled', false);\n });\n },\n\n testTelegram() {\n const telegram = {};\n telegram.id = $.trim($('#telegram_id').val());\n telegram.apikey = $.trim($('#telegram_apikey').val());\n\n if (!telegram.id || !telegram.apikey) {\n $('#testTelegram-result').html('Please fill out the necessary fields above.');\n $('#telegram_id').addRemoveWarningClass(telegram.id);\n $('#telegram_apikey').addRemoveWarningClass(telegram.apikey);\n return;\n }\n\n $('#telegram_id,#telegram_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTelegram-result').html(MEDUSA.config.loading);\n $.get('home/testTelegram', {\n telegram_id: telegram.id,\n // eslint-disable-line camelcase\n telegram_apikey: telegram.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTelegram-result').html(data);\n $('#testTelegram').prop('disabled', false);\n });\n },\n\n testDiscord() {\n const {\n notifiers\n } = this;\n\n if (!notifiers.discord.webhook) {\n $('#testDiscord-result').html('Please fill out the necessary fields above.');\n $('#discord_webhook').addRemoveWarningClass(notifiers.discord.webhook);\n return;\n }\n\n $('#discord_id,#discord_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testDiscord-result').html(MEDUSA.config.loading);\n $.get('home/testDiscord', {\n discord_webhook: notifiers.discord.webhook,\n // eslint-disable-line camelcase\n discord_tts: notifiers.discord.tts // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testDiscord-result').html(data);\n $('#testDiscord').prop('disabled', false);\n });\n },\n\n testSlack() {\n const slack = {};\n slack.webhook = $.trim($('#slack_webhook').val());\n\n if (!slack.webhook) {\n $('#testSlack-result').html('Please fill out the necessary fields above.');\n $('#slack_webhook').addRemoveWarningClass(slack.webhook);\n return;\n }\n\n $('#slack_webhook').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testSlack-result').html(MEDUSA.config.loading);\n $.get('home/testslack', {\n slack_webhook: slack.webhook // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testSlack-result').html(data);\n $('#testSlack').prop('disabled', false);\n });\n },\n\n TraktGetPin() {\n window.open($('#trakt_pin_url').val(), 'popUp', 'toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550');\n $('#trakt_pin').prop('disabled', false);\n },\n\n authTrakt() {\n const trakt = {};\n trakt.pin = $('#trakt_pin').val();\n\n if (trakt.pin.length !== 0) {\n $.get('home/getTraktToken', {\n trakt_pin: trakt.pin // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTrakt-result').html(data);\n $('#authTrakt').addClass('hide');\n $('#trakt_pin').prop('disabled', true);\n $('#trakt_pin').val('');\n $('#TraktGetPin').removeClass('hide');\n });\n }\n },\n\n testTrakt() {\n const trakt = {};\n trakt.username = $.trim($('#trakt_username').val());\n trakt.trendingBlacklist = $.trim($('#trakt_blacklist_name').val());\n\n if (!trakt.username) {\n $('#testTrakt-result').html('Please fill out the necessary fields above.');\n $('#trakt_username').addRemoveWarningClass(trakt.username);\n return;\n }\n\n if (/\\s/g.test(trakt.trendingBlacklist)) {\n $('#testTrakt-result').html('Check blacklist name; the value needs to be a trakt slug');\n $('#trakt_blacklist_name').addClass('warning');\n return;\n }\n\n $('#trakt_username').removeClass('warning');\n $('#trakt_blacklist_name').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTrakt-result').html(MEDUSA.config.loading);\n $.get('home/testTrakt', {\n username: trakt.username,\n blacklist_name: trakt.trendingBlacklist // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTrakt-result').html(data);\n $('#testTrakt').prop('disabled', false);\n });\n },\n\n traktForceSync() {\n $('#testTrakt-result').html(MEDUSA.config.loading);\n $.getJSON('home/forceTraktSync', data => {\n $('#testTrakt-result').html(data.result);\n });\n },\n\n testEmail() {\n let to = '';\n const status = $('#testEmail-result');\n status.html(MEDUSA.config.loading);\n let host = $('#email_host').val();\n host = host.length > 0 ? host : null;\n let port = $('#email_port').val();\n port = port.length > 0 ? port : null;\n const tls = $('#email_tls').find('input').is(':checked') ? 1 : 0;\n let from = $('#email_from').val();\n from = from.length > 0 ? from : 'root@localhost';\n const user = $('#email_username').val().trim();\n const pwd = $('#email_password').val();\n let err = '';\n\n if (host === null) {\n err += '
  • You must specify an SMTP hostname!
  • ';\n }\n\n if (port === null) {\n err += '
  • You must specify an SMTP port!
  • ';\n } else if (port.match(/^\\d+$/) === null || Number.parseInt(port, 10) > 65535) {\n err += '
  • SMTP port must be between 0 and 65535!
  • ';\n }\n\n if (err.length > 0) {\n err = '
      ' + err + '
    ';\n status.html(err);\n } else {\n to = prompt('Enter an email address to send the test to:', null); // eslint-disable-line no-alert\n\n if (to === null || to.length === 0 || to.match(/.*@.*/) === null) {\n status.html('

    You must provide a recipient email address!

    ');\n } else {\n $.get('home/testEmail', {\n host,\n port,\n smtp_from: from,\n // eslint-disable-line camelcase\n use_tls: tls,\n // eslint-disable-line camelcase\n user,\n pwd,\n to\n }, msg => {\n $('#testEmail-result').html(msg);\n });\n }\n }\n },\n\n testPushalot() {\n const pushalot = {};\n pushalot.authToken = $.trim($('#pushalot_authorizationtoken').val());\n\n if (!pushalot.authToken) {\n $('#testPushalot-result').html('Please fill out the necessary fields above.');\n $('#pushalot_authorizationtoken').addClass('warning');\n return;\n }\n\n $('#pushalot_authorizationtoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushalot-result').html(MEDUSA.config.loading);\n $.get('home/testPushalot', {\n authorizationToken: pushalot.authToken\n }).done(data => {\n $('#testPushalot-result').html(data);\n $('#testPushalot').prop('disabled', false);\n });\n }\n\n }\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\")))\n\n//# sourceURL=webpack:///./src/components/config-notifications.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../api.js */ \"./src/api.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ \"./src/components/helpers/index.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'config-notifications',\n components: {\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"AppLink\"],\n ConfigTemplate: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTemplate\"],\n ConfigTextbox: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTextbox\"],\n ConfigTextboxNumber: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigTextboxNumber\"],\n ConfigToggleSlider: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ConfigToggleSlider\"],\n SelectList: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"SelectList\"],\n ShowSelector: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ShowSelector\"]\n },\n\n data() {\n return {\n prowlSelectedShow: null,\n prowlSelectedShowApiKeys: [],\n prowlPriorityOptions: [{\n text: 'Very Low',\n value: -2\n }, {\n text: 'Moderate',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverPriorityOptions: [{\n text: 'Lowest',\n value: -2\n }, {\n text: 'Low',\n value: -1\n }, {\n text: 'Normal',\n value: 0\n }, {\n text: 'High',\n value: 1\n }, {\n text: 'Emergency',\n value: 2\n }],\n pushoverSoundOptions: [{\n text: 'Default',\n value: 'default'\n }, {\n text: 'Pushover',\n value: 'pushover'\n }, {\n text: 'Bike',\n value: 'bike'\n }, {\n text: 'Bugle',\n value: 'bugle'\n }, {\n text: 'Cash Register',\n value: 'cashregister'\n }, {\n text: 'classical',\n value: 'classical'\n }, {\n text: 'Cosmic',\n value: 'cosmic'\n }, {\n text: 'Falling',\n value: 'falling'\n }, {\n text: 'Gamelan',\n value: 'gamelan'\n }, {\n text: 'Incoming',\n value: 'incoming'\n }, {\n text: 'Intermission',\n value: 'intermission'\n }, {\n text: 'Magic',\n value: 'magic'\n }, {\n text: 'Mechanical',\n value: 'mechanical'\n }, {\n text: 'Piano Bar',\n value: 'pianobar'\n }, {\n text: 'Siren',\n value: 'siren'\n }, {\n text: 'Space Alarm',\n value: 'spacealarm'\n }, {\n text: 'Tug Boat',\n value: 'tugboat'\n }, {\n text: 'Alien Alarm (long)',\n value: 'alien'\n }, {\n text: 'Climb (long)',\n value: 'climb'\n }, {\n text: 'Persistent (long)',\n value: 'persistant'\n }, {\n text: 'Pushover Echo (long)',\n value: 'echo'\n }, {\n text: 'Up Down (long)',\n value: 'updown'\n }, {\n text: 'None (silent)',\n value: 'none'\n }],\n pushbulletDeviceOptions: [{\n text: 'All devices',\n value: ''\n }],\n traktMethodOptions: [{\n text: 'Skip all',\n value: 0\n }, {\n text: 'Download pilot only',\n value: 1\n }, {\n text: 'Get whole show',\n value: 2\n }],\n pushbulletTestInfo: 'Click below to test.',\n joinTestInfo: 'Click below to test.',\n twitterTestInfo: 'Click below to test.',\n twitterKey: '',\n emailSelectedShow: null,\n emailSelectedShowAdresses: []\n };\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])(['config', 'indexers', 'notifiers']),\n\n traktNewTokenMessage() {\n const {\n accessToken\n } = this.notifiers.trakt;\n return true ? 'New ' : undefined;\n },\n\n traktIndexersOptions() {\n const {\n indexers\n } = this;\n const {\n traktIndexers\n } = indexers.main;\n const validTraktIndexer = Object.keys(indexers.indexers).filter(k => traktIndexers[k]);\n return validTraktIndexer.map(indexer => {\n return {\n text: indexer,\n value: indexers.indexers[indexer].id\n };\n });\n }\n\n },\n\n beforeMount() {\n // Wait for the next tick, so the component is rendered\n this.$nextTick(() => {\n $('#config-components').tabs();\n });\n },\n\n mounted() {\n // TODO: vueify this.\n $('#trakt_pin').on('keyup change', () => {\n if ($('#trakt_pin').val().length === 0) {\n $('#TraktGetPin').removeClass('hide');\n $('#authTrakt').addClass('hide');\n } else {\n $('#TraktGetPin').addClass('hide');\n $('#authTrakt').removeClass('hide');\n }\n });\n },\n\n methods: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapActions\"])(['getShows', 'setConfig']),\n\n onChangeProwlApi(items) {\n this.notifiers.prowl.api = items.map(item => item.value);\n },\n\n savePerShowNotifyList(listType, values) {\n const {\n emailSelectedShow,\n prowlSelectedShow\n } = this;\n const form = new FormData();\n\n if (listType === 'prowl') {\n form.set('show', prowlSelectedShow);\n form.set('prowlAPIs', values.map(apiKey => apiKey.value));\n } else {\n form.set('show', emailSelectedShow);\n form.set('emails', values.map(apiKey => apiKey.value));\n } // Save the list\n\n\n _api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"].post('home/saveShowNotifyList', form);\n },\n\n async prowlUpdateApiKeys(selectedShow) {\n this.prowlSelectedShow = selectedShow;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].prowl_notify_list ? response.data[selectedShow].prowl_notify_list.split(',') : [];\n this.prowlSelectedShowApiKeys = selectedShow ? list : [];\n }\n },\n\n async emailUpdateShowEmail(selectedShow) {\n this.emailSelectedShow = selectedShow;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/loadShowNotifyLists');\n\n if (response.data._size > 0) {\n const list = response.data[selectedShow].list ? response.data[selectedShow].list.split(',') : [];\n this.emailSelectedShowAdresses = selectedShow ? list : [];\n }\n },\n\n emailUpdateAddressList(items) {\n this.notifiers.email.addressList = items.map(x => x.value);\n },\n\n async getPushbulletDeviceOptions() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/getPushbulletDevices', {\n params: {\n api: pushbulletApiKey\n }\n });\n const options = [];\n const {\n data\n } = response;\n\n if (!data) {\n return false;\n }\n\n options.push({\n text: 'All devices',\n value: ''\n });\n\n for (const device of data.devices) {\n if (device.active === true) {\n options.push({\n text: device.nickname,\n value: device.iden\n });\n }\n }\n\n this.pushbulletDeviceOptions = options;\n this.pushbulletTestInfo = 'Device list updated. Please choose a device to push to.';\n },\n\n async testPushbulletApi() {\n const {\n api: pushbulletApiKey\n } = this.notifiers.pushbullet;\n\n if (!pushbulletApiKey) {\n this.pushbulletTestInfo = 'You didn\\'t supply a Pushbullet api key';\n $('#pushbullet_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testPushbullet', {\n params: {\n api: pushbulletApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.pushbulletTestInfo = data;\n }\n },\n\n async testJoinApi() {\n const {\n api: joinApiKey\n } = this.notifiers.join;\n\n if (!joinApiKey) {\n this.joinTestInfo = 'You didn\\'t supply a Join api key';\n $('#join_api').find('input').focus();\n return false;\n }\n\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testJoin', {\n params: {\n api: joinApiKey\n }\n });\n const {\n data\n } = response;\n\n if (data) {\n this.joinTestInfo = data;\n }\n },\n\n async twitterStep1() {\n this.twitterTestInfo = MEDUSA.config.loading;\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/twitterStep1');\n const {\n data\n } = response;\n window.open(data);\n this.twitterTestInfo = 'Step1: Confirm Authorization';\n },\n\n async twitterStep2() {\n const twitter = {};\n const {\n twitterKey\n } = this;\n twitter.key = twitterKey;\n\n if (twitter.key) {\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/twitterStep2', {\n params: {\n key: twitter.key\n }\n });\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } else {\n this.twitterTestInfo = 'Please fill out the necessary fields above.';\n }\n },\n\n async twitterTest() {\n try {\n const response = await Object(_api_js__WEBPACK_IMPORTED_MODULE_0__[\"apiRoute\"])('home/testTwitter');\n const {\n data\n } = response;\n this.twitterTestInfo = data;\n } catch (error) {\n this.twitterTestInfo = 'Error while trying to request for a test on the twitter api.';\n }\n },\n\n async save() {\n const {\n notifiers,\n setConfig\n } = this; // Disable the save button until we're done.\n\n this.saving = true;\n const section = 'main';\n\n try {\n await setConfig({\n section,\n config: {\n notifiers\n }\n });\n this.$snotify.success('Saved Notifiers config', 'Saved', {\n timeout: 5000\n });\n } catch (error) {\n this.$snotify.error('Error while trying to save notifiers config', 'Error');\n } finally {\n this.saving = false;\n }\n },\n\n testGrowl() {\n const growl = {};\n growl.host = $.trim($('#growl_host').val());\n growl.password = $.trim($('#growl_password').val());\n\n if (!growl.host) {\n $('#testGrowl-result').html('Please fill out the necessary fields above.');\n $('#growl_host').addClass('warning');\n return;\n }\n\n $('#growl_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testGrowl-result').html(MEDUSA.config.loading);\n $.get('home/testGrowl', {\n host: growl.host,\n password: growl.password\n }).done(data => {\n $('#testGrowl-result').html(data);\n $('#testGrowl').prop('disabled', false);\n });\n },\n\n testProwl() {\n const prowl = {};\n prowl.api = $.trim($('#prowl_api').find('input').val());\n prowl.priority = $('#prowl_priority').find('input').val();\n\n if (!prowl.api) {\n $('#testProwl-result').html('Please fill out the necessary fields above.');\n $('#prowl_api').find('input').addClass('warning');\n return;\n }\n\n $('#prowl_api').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testProwl-result').html(MEDUSA.config.loading);\n $.get('home/testProwl', {\n prowl_api: prowl.api,\n // eslint-disable-line camelcase\n prowl_priority: prowl.priority // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testProwl-result').html(data);\n $('#testProwl').prop('disabled', false);\n });\n },\n\n testKODI() {\n const kodi = {};\n const kodiHostInput = $('#kodi_host').find('input');\n const kodiHosts = kodiHostInput.toArray().map(value => value.value).filter(item => item !== '');\n kodi.host = kodiHosts.join(',');\n kodi.username = $.trim($('#kodi_username').val());\n kodi.password = $.trim($('#kodi_password').val());\n\n if (!kodi.host) {\n $('#testKODI-result').html('Please fill out the necessary fields above.');\n $('#kodi_host').find('input').addClass('warning');\n return;\n }\n\n $('#kodi_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testKODI-result').html(MEDUSA.config.loading);\n $.get('home/testKODI', {\n host: kodi.host,\n username: kodi.username,\n password: kodi.password\n }).done(data => {\n $('#testKODI-result').html(data);\n $('#testKODI').prop('disabled', false);\n });\n },\n\n testPHT() {\n const plex = {};\n plex.client = {};\n const plexHostsInput = $('#plex_client_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.client.host = plexHosts.join(',');\n plex.client.username = $.trim($('#plex_client_username').val());\n plex.client.password = $.trim($('#plex_client_password').val());\n\n if (!plex.client.host) {\n $('#testPHT-result').html('Please fill out the necessary fields above.');\n $('#plex_client_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_client_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPHT-result').html(MEDUSA.config.loading);\n $.get('home/testPHT', {\n host: plex.client.host,\n username: plex.client.username,\n password: plex.client.password\n }).done(data => {\n $('#testPHT-result').html(data);\n $('#testPHT').prop('disabled', false);\n });\n },\n\n testPMS() {\n const plex = {};\n plex.server = {};\n const plexHostsInput = $('#plex_server_host').find('input');\n const plexHosts = plexHostsInput.toArray().map(value => value.value).filter(item => item !== '');\n plex.server.host = plexHosts.join(',');\n plex.server.username = $.trim($('#plex_server_username').val());\n plex.server.password = $.trim($('#plex_server_password').val());\n plex.server.token = $.trim($('#plex_server_token').val());\n\n if (!plex.server.host) {\n $('#testPMS-result').html('Please fill out the necessary fields above.');\n $('#plex_server_host').find('input').addClass('warning');\n return;\n }\n\n $('#plex_server_host').find('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPMS-result').html(MEDUSA.config.loading);\n $.get('home/testPMS', {\n host: plex.server.host,\n username: plex.server.username,\n password: plex.server.password,\n plex_server_token: plex.server.token // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testPMS-result').html(data);\n $('#testPMS').prop('disabled', false);\n });\n },\n\n testEMBY() {\n const emby = {};\n emby.host = $('#emby_host').val();\n emby.apikey = $('#emby_apikey').val();\n\n if (!emby.host || !emby.apikey) {\n $('#testEMBY-result').html('Please fill out the necessary fields above.');\n $('#emby_host').addRemoveWarningClass(emby.host);\n $('#emby_apikey').addRemoveWarningClass(emby.apikey);\n return;\n }\n\n $('#emby_host,#emby_apikey').children('input').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testEMBY-result').html(MEDUSA.config.loading);\n $.get('home/testEMBY', {\n host: emby.host,\n emby_apikey: emby.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testEMBY-result').html(data);\n $('#testEMBY').prop('disabled', false);\n });\n },\n\n testBoxcar2() {\n const boxcar2 = {};\n boxcar2.accesstoken = $.trim($('#boxcar2_accesstoken').val());\n\n if (!boxcar2.accesstoken) {\n $('#testBoxcar2-result').html('Please fill out the necessary fields above.');\n $('#boxcar2_accesstoken').addClass('warning');\n return;\n }\n\n $('#boxcar2_accesstoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testBoxcar2-result').html(MEDUSA.config.loading);\n $.get('home/testBoxcar2', {\n accesstoken: boxcar2.accesstoken\n }).done(data => {\n $('#testBoxcar2-result').html(data);\n $('#testBoxcar2').prop('disabled', false);\n });\n },\n\n testPushover() {\n const pushover = {};\n pushover.userkey = $('#pushover_userkey').val();\n pushover.apikey = $('#pushover_apikey').val();\n\n if (!pushover.userkey || !pushover.apikey) {\n $('#testPushover-result').html('Please fill out the necessary fields above.');\n $('#pushover_userkey').addRemoveWarningClass(pushover.userkey);\n $('#pushover_apikey').addRemoveWarningClass(pushover.apikey);\n return;\n }\n\n $('#pushover_userkey,#pushover_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushover-result').html(MEDUSA.config.loading);\n $.get('home/testPushover', {\n userKey: pushover.userkey,\n apiKey: pushover.apikey\n }).done(data => {\n $('#testPushover-result').html(data);\n $('#testPushover').prop('disabled', false);\n });\n },\n\n testLibnotify() {\n $('#testLibnotify-result').html(MEDUSA.config.loading);\n $.get('home/testLibnotify', data => {\n $('#testLibnotify-result').html(data);\n });\n },\n\n settingsNMJ() {\n const nmj = {};\n nmj.host = $('#nmj_host').val();\n\n if (nmj.host) {\n $('#testNMJ-result').html(MEDUSA.config.loading);\n $.get('home/settingsNMJ', {\n host: nmj.host\n }, data => {\n if (data === null) {\n $('#nmj_database').removeAttr('readonly');\n $('#nmj_mount').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJ-result').html(JSONData.message);\n $('#nmj_database').val(JSONData.database);\n $('#nmj_mount').val(JSONData.mount);\n\n if (JSONData.database) {\n $('#nmj_database').prop('readonly', true);\n } else {\n $('#nmj_database').removeAttr('readonly');\n }\n\n if (JSONData.mount) {\n $('#nmj_mount').prop('readonly', true);\n } else {\n $('#nmj_mount').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmj_host').focus();\n }\n },\n\n testNMJ() {\n const nmj = {};\n nmj.host = $.trim($('#nmj_host').val());\n nmj.database = $('#nmj_database').val();\n nmj.mount = $('#nmj_mount').val();\n\n if (nmj.host) {\n $('#nmj_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJ-result').html(MEDUSA.config.loading);\n $.get('home/testNMJ', {\n host: nmj.host,\n database: nmj.database,\n mount: nmj.mount\n }).done(data => {\n $('#testNMJ-result').html(data);\n $('#testNMJ').prop('disabled', false);\n });\n } else {\n $('#testNMJ-result').html('Please fill out the necessary fields above.');\n $('#nmj_host').addClass('warning');\n }\n },\n\n settingsNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $('#nmjv2_host').val();\n\n if (nmjv2.host) {\n $('#testNMJv2-result').html(MEDUSA.config.loading);\n nmjv2.dbloc = '';\n const radios = document.getElementsByName('nmjv2_dbloc');\n\n for (let i = 0, len = radios.length; i < len; i++) {\n if (radios[i].checked) {\n nmjv2.dbloc = radios[i].value;\n break;\n }\n }\n\n nmjv2.dbinstance = $('#NMJv2db_instance').val();\n $.get('home/settingsNMJv2', {\n host: nmjv2.host,\n dbloc: nmjv2.dbloc,\n instance: nmjv2.dbinstance\n }, data => {\n if (data === null) {\n $('#nmjv2_database').removeAttr('readonly');\n }\n\n const JSONData = $.parseJSON(data);\n $('#testNMJv2-result').html(JSONData.message);\n $('#nmjv2_database').val(JSONData.database);\n\n if (JSONData.database) {\n $('#nmjv2_database').prop('readonly', true);\n } else {\n $('#nmjv2_database').removeAttr('readonly');\n }\n });\n } else {\n alert('Please fill in the Popcorn IP address'); // eslint-disable-line no-alert\n\n $('#nmjv2_host').focus();\n }\n },\n\n testNMJv2() {\n const nmjv2 = {};\n nmjv2.host = $.trim($('#nmjv2_host').val());\n\n if (nmjv2.host) {\n $('#nmjv2_host').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testNMJv2-result').html(MEDUSA.config.loading);\n $.get('home/testNMJv2', {\n host: nmjv2.host\n }).done(data => {\n $('#testNMJv2-result').html(data);\n $('#testNMJv2').prop('disabled', false);\n });\n } else {\n $('#testNMJv2-result').html('Please fill out the necessary fields above.');\n $('#nmjv2_host').addClass('warning');\n }\n },\n\n testFreeMobile() {\n const freemobile = {};\n freemobile.id = $.trim($('#freemobile_id').val());\n freemobile.apikey = $.trim($('#freemobile_apikey').val());\n\n if (!freemobile.id || !freemobile.apikey) {\n $('#testFreeMobile-result').html('Please fill out the necessary fields above.');\n\n if (freemobile.id) {\n $('#freemobile_id').removeClass('warning');\n } else {\n $('#freemobile_id').addClass('warning');\n }\n\n if (freemobile.apikey) {\n $('#freemobile_apikey').removeClass('warning');\n } else {\n $('#freemobile_apikey').addClass('warning');\n }\n\n return;\n }\n\n $('#freemobile_id,#freemobile_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testFreeMobile-result').html(MEDUSA.config.loading);\n $.get('home/testFreeMobile', {\n freemobile_id: freemobile.id,\n // eslint-disable-line camelcase\n freemobile_apikey: freemobile.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testFreeMobile-result').html(data);\n $('#testFreeMobile').prop('disabled', false);\n });\n },\n\n testTelegram() {\n const telegram = {};\n telegram.id = $.trim($('#telegram_id').val());\n telegram.apikey = $.trim($('#telegram_apikey').val());\n\n if (!telegram.id || !telegram.apikey) {\n $('#testTelegram-result').html('Please fill out the necessary fields above.');\n $('#telegram_id').addRemoveWarningClass(telegram.id);\n $('#telegram_apikey').addRemoveWarningClass(telegram.apikey);\n return;\n }\n\n $('#telegram_id,#telegram_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTelegram-result').html(MEDUSA.config.loading);\n $.get('home/testTelegram', {\n telegram_id: telegram.id,\n // eslint-disable-line camelcase\n telegram_apikey: telegram.apikey // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTelegram-result').html(data);\n $('#testTelegram').prop('disabled', false);\n });\n },\n\n testDiscord() {\n const {\n notifiers\n } = this;\n\n if (!notifiers.discord.webhook) {\n $('#testDiscord-result').html('Please fill out the necessary fields above.');\n $('#discord_webhook').addRemoveWarningClass(notifiers.discord.webhook);\n return;\n }\n\n $('#discord_id,#discord_apikey').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testDiscord-result').html(MEDUSA.config.loading);\n $.get('home/testDiscord', {\n discord_webhook: notifiers.discord.webhook,\n // eslint-disable-line camelcase\n discord_tts: notifiers.discord.tts // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testDiscord-result').html(data);\n $('#testDiscord').prop('disabled', false);\n });\n },\n\n testSlack() {\n const slack = {};\n slack.webhook = $.trim($('#slack_webhook').val());\n\n if (!slack.webhook) {\n $('#testSlack-result').html('Please fill out the necessary fields above.');\n $('#slack_webhook').addRemoveWarningClass(slack.webhook);\n return;\n }\n\n $('#slack_webhook').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testSlack-result').html(MEDUSA.config.loading);\n $.get('home/testslack', {\n slack_webhook: slack.webhook // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testSlack-result').html(data);\n $('#testSlack').prop('disabled', false);\n });\n },\n\n TraktGetPin() {\n window.open($('#trakt_pin_url').val(), 'popUp', 'toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550');\n $('#trakt_pin').prop('disabled', false);\n },\n\n authTrakt() {\n const trakt = {};\n trakt.pin = $('#trakt_pin').val();\n\n if (trakt.pin.length !== 0) {\n $.get('home/getTraktToken', {\n trakt_pin: trakt.pin // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTrakt-result').html(data);\n $('#authTrakt').addClass('hide');\n $('#trakt_pin').prop('disabled', true);\n $('#trakt_pin').val('');\n $('#TraktGetPin').removeClass('hide');\n });\n }\n },\n\n testTrakt() {\n const trakt = {};\n trakt.username = $.trim($('#trakt_username').val());\n trakt.trendingBlacklist = $.trim($('#trakt_blacklist_name').val());\n\n if (!trakt.username) {\n $('#testTrakt-result').html('Please fill out the necessary fields above.');\n $('#trakt_username').addRemoveWarningClass(trakt.username);\n return;\n }\n\n if (/\\s/g.test(trakt.trendingBlacklist)) {\n $('#testTrakt-result').html('Check blacklist name; the value needs to be a trakt slug');\n $('#trakt_blacklist_name').addClass('warning');\n return;\n }\n\n $('#trakt_username').removeClass('warning');\n $('#trakt_blacklist_name').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testTrakt-result').html(MEDUSA.config.loading);\n $.get('home/testTrakt', {\n username: trakt.username,\n blacklist_name: trakt.trendingBlacklist // eslint-disable-line camelcase\n\n }).done(data => {\n $('#testTrakt-result').html(data);\n $('#testTrakt').prop('disabled', false);\n });\n },\n\n traktForceSync() {\n $('#testTrakt-result').html(MEDUSA.config.loading);\n $.getJSON('home/forceTraktSync', data => {\n $('#testTrakt-result').html(data.result);\n });\n },\n\n testEmail() {\n let to = '';\n const status = $('#testEmail-result');\n status.html(MEDUSA.config.loading);\n let host = $('#email_host').val();\n host = host.length > 0 ? host : null;\n let port = $('#email_port').val();\n port = port.length > 0 ? port : null;\n const tls = $('#email_tls').find('input').is(':checked') ? 1 : 0;\n let from = $('#email_from').val();\n from = from.length > 0 ? from : 'root@localhost';\n const user = $('#email_username').val().trim();\n const pwd = $('#email_password').val();\n let err = '';\n\n if (host === null) {\n err += '
  • You must specify an SMTP hostname!
  • ';\n }\n\n if (port === null) {\n err += '
  • You must specify an SMTP port!
  • ';\n } else if (port.match(/^\\d+$/) === null || Number.parseInt(port, 10) > 65535) {\n err += '
  • SMTP port must be between 0 and 65535!
  • ';\n }\n\n if (err.length > 0) {\n err = '
      ' + err + '
    ';\n status.html(err);\n } else {\n to = prompt('Enter an email address to send the test to:', null); // eslint-disable-line no-alert\n\n if (to === null || to.length === 0 || to.match(/.*@.*/) === null) {\n status.html('

    You must provide a recipient email address!

    ');\n } else {\n $.get('home/testEmail', {\n host,\n port,\n smtp_from: from,\n // eslint-disable-line camelcase\n use_tls: tls,\n // eslint-disable-line camelcase\n user,\n pwd,\n to\n }, msg => {\n $('#testEmail-result').html(msg);\n });\n }\n }\n },\n\n testPushalot() {\n const pushalot = {};\n pushalot.authToken = $.trim($('#pushalot_authorizationtoken').val());\n\n if (!pushalot.authToken) {\n $('#testPushalot-result').html('Please fill out the necessary fields above.');\n $('#pushalot_authorizationtoken').addClass('warning');\n return;\n }\n\n $('#pushalot_authorizationtoken').removeClass('warning');\n $(this).prop('disabled', true);\n $('#testPushalot-result').html(MEDUSA.config.loading);\n $.get('home/testPushalot', {\n authorizationToken: pushalot.authToken\n }).done(data => {\n $('#testPushalot-result').html(data);\n $('#testPushalot').prop('disabled', false);\n });\n }\n\n }\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\")))\n\n//# sourceURL=webpack:///./src/components/config-notifications.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -1058,7 +1058,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"config-notifications\" } },\n [\n _c(\"vue-snotify\"),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"config\" } }, [\n _c(\"div\", { attrs: { id: \"config-content\" } }, [\n _c(\n \"form\",\n {\n attrs: { id: \"configForm\", method: \"post\" },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.save()\n }\n }\n },\n [\n _c(\"div\", { attrs: { id: \"config-components\" } }, [\n _c(\"ul\", [\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#home-theater-nas\" } }, [\n _vm._v(\"Home Theater / NAS\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#devices\" } }, [\n _vm._v(\"Devices\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#social\" } }, [\n _vm._v(\"Social\")\n ])\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"home-theater-nas\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-kodi\",\n attrs: { title: \"KODI\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://kodi.tv\" } },\n [_vm._v(\"KODI\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A free and open source cross-platform media center and home entertainment system software with a 10-foot user interface designed for the living-room TV.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_kodi\",\n explanations: [\"Send KODI commands?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.kodi, \"enabled\", $$v)\n },\n expression: \"notifiers.kodi.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.kodi.enabled,\n expression: \"notifiers.kodi.enabled\"\n }\n ],\n attrs: { id: \"content-use-kodi\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Always on\",\n id: \"kodi_always_on\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.alwaysOn,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"alwaysOn\",\n $$v\n )\n },\n expression: \"notifiers.kodi.alwaysOn\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"kodi_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"kodi_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"kodi_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.kodi.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.kodi.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update library\",\n id: \"kodi_update_library\",\n explanations: [\n \"update KODI library when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.library,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"library\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.library\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Full library update\",\n id: \"kodi_update_full\",\n explanations: [\n \"perform a full library update if update per-show fails?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.full,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"full\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.full\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Clean library\",\n id: \"kodi_clean_library\",\n explanations: [\n \"clean KODI library when replaces a already downloaded episode?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.cleanLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"cleanLibrary\",\n $$v\n )\n },\n expression: \"notifiers.kodi.cleanLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Only update first host\",\n id: \"kodi_update_onlyfirst\",\n explanations: [\n \"only send library updates/clean to the first active host?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.onlyFirst,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"onlyFirst\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.onlyFirst\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-sm-10 content\" },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"kodi_host\",\n id: \"kodi_host\",\n \"list-items\": _vm.notifiers.kodi.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.kodi.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"host running KODI (eg. 192.168.1.100:8080)\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"kodi_username\",\n explanations: [\n \"username for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.kodi.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"kodi_password\",\n explanations: [\n \"password for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.kodi.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testKODI-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test KODI\",\n id: \"testKODI\"\n },\n on: { click: _vm.testKODI }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plex\",\n attrs: { title: \"Plex Media Server\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Media Server\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Experience your media on a visually stunning, easy to use interface on your Mac connected to your TV. Your media library has never looked this good!\"\n )\n ]),\n _vm._v(\" \"),\n _vm.notifiers.plex.server.enabled\n ? _c(\"p\", { staticClass: \"plexinfo\" }, [\n _vm._v(\n \"For sending notifications to Plex Home Theater (PHT) clients, use the KODI notifier with port \"\n ),\n _c(\"b\", [_vm._v(\"3005\")]),\n _vm._v(\".\")\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_server\",\n explanations: [\"Send Plex server notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.server.enabled,\n expression: \"notifiers.plex.server.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-server\" }\n },\n [\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Plex Media Server Auth Token\",\n id: \"plex_server_token\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.token,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"token\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.token\"\n }\n },\n [\n _c(\"p\", [_vm._v(\"Auth Token used by plex\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"span\",\n [\n _vm._v(\"See: \"),\n _c(\n \"app-link\",\n {\n staticClass: \"wiki\",\n attrs: {\n href:\n \"https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\"\n }\n },\n [\n _c(\"strong\", [\n _vm._v(\n \"Finding your account token\"\n )\n ])\n ]\n )\n ],\n 1\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_server_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_server_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update Library\",\n id: \"plex_update_library\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.server.updateLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"updateLibrary\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.server.updateLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_server_host\",\n label: \"Plex Media Server IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_server_host\",\n id: \"plex_server_host\",\n \"list-items\":\n _vm.notifiers.plex.server.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.server.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Media Server\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.1:32400, 192.168.1.2:32400)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"plex_server_https\",\n explanations: [\n \"use https for plex media server requests?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.https,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"https\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.https\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPMS-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Media Server(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Media Server\",\n id: \"testPMS\"\n },\n on: { click: _vm.testPMS }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clear-left\" }, [\n _vm._v(\" \")\n ])\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plexth\",\n attrs: { title: \"Plex Media Client\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Home Theater\")]\n )\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_client\",\n explanations: [\n \"Send Plex Home Theater notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.client.enabled,\n expression: \"notifiers.plex.client.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"plex_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"plex_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"plex_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_client_host\",\n label: \"Plex Home Theater IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_client_host\",\n id: \"plex_client_host\",\n \"list-items\":\n _vm.notifiers.plex.client.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.client.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Home Theater\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.100:3000, 192.168.1.101:3000)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_client_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_client_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPHT-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Home Theater(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Home Theater\",\n id: \"testPHT\"\n },\n on: { click: _vm.testPHT }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\"\n }\n }),\n _vm._v(\" \"),\n _vm._m(1)\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-emby\",\n attrs: { title: \"Emby\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://emby.media\" } },\n [_vm._v(\"Emby\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A home media server built using other popular open source technologies.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_emby\",\n explanations: [\"Send update commands to Emby?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"enabled\", $$v)\n },\n expression: \"notifiers.emby.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.emby.enabled,\n expression: \"notifiers.emby.enabled\"\n }\n ],\n attrs: { id: \"content_use_emby\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Emby IP:Port\",\n id: \"emby_host\",\n explanations: [\n \"host running Emby (eg. 192.168.1.100:8096)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"host\", $$v)\n },\n expression: \"notifiers.emby.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: { label: \"Api Key\", id: \"emby_apikey\" },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.apiKey,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"apiKey\", $$v)\n },\n expression: \"notifiers.emby.apiKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEMBY-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Emby\",\n id: \"testEMBY\"\n },\n on: { click: _vm.testEMBY }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJ\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJ, is the official media jukebox interface made available for the Popcorn Hour 200-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmj\",\n explanations: [\"Send update commands to NMJ?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"enabled\", $$v)\n },\n expression: \"notifiers.nmj.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmj.enabled,\n expression: \"notifiers.nmj.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmj\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmj_host\",\n explanations: [\n \"IP address of Popcorn 200-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"host\", $$v)\n },\n expression: \"notifiers.nmj.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"settingsNMJ\",\n label: \"Get settings\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Get Settings\",\n id: \"settingsNMJ\"\n },\n on: { click: _vm.settingsNMJ }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on and NMJ running.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ database\",\n id: \"nmj_database\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.database,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"database\", $$v)\n },\n expression: \"notifiers.nmj.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ mount\",\n id: \"nmj_mount\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.mount,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"mount\", $$v)\n },\n expression: \"notifiers.nmj.mount\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJ-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJ\",\n id: \"testNMJ\"\n },\n on: { click: _vm.testNMJ }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox v2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJv2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJv2, is the official media jukebox interface made available for the Popcorn Hour 300 & 400-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmjv2\",\n explanations: [\n \"Send popcorn hour (nmjv2) notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"enabled\", $$v)\n },\n expression: \"notifiers.nmjv2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmjv2.enabled,\n expression: \"notifiers.nmjv2.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmjv2\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmjv2_host\",\n explanations: [\n \"IP address of Popcorn 300/400-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"host\", $$v)\n },\n expression: \"notifiers.nmjv2.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_location\",\n label: \"Database location\"\n }\n },\n [\n _c(\n \"label\",\n {\n staticClass: \"space-right\",\n attrs: { for: \"NMJV2_DBLOC_A\" }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"local\",\n id: \"NMJV2_DBLOC_A\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Local Media\\n \"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n { attrs: { for: \"NMJV2_DBLOC_B\" } },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"network\",\n id: \"NMJV2_DBLOC_B\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Network Media\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_instance\",\n label: \"Database instance\"\n }\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { id: \"NMJv2db_instance\" }\n },\n [\n _c(\"option\", { attrs: { value: \"0\" } }, [\n _vm._v(\"#1 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"#2 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"2\" } }, [\n _vm._v(\"#3 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3\" } }, [\n _vm._v(\"#4 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"4\" } }, [\n _vm._v(\"#5 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"5\" } }, [\n _vm._v(\"#6 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"6\" } }, [\n _vm._v(\"#7 \")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"adjust this value if the wrong database is selected.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"get_nmjv2_find_database\",\n label: \"Find database\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Find Database\",\n id: \"settingsNMJv2\"\n },\n on: { click: _vm.settingsNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJv2 database\",\n id: \"nmjv2_database\",\n explanations: [\n \"automatically filled via the 'Find Database' buttons.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.database,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.nmjv2,\n \"database\",\n $$v\n )\n },\n expression: \"notifiers.nmjv2.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJv2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJv2\",\n id: \"testNMJv2\"\n },\n on: { click: _vm.testNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno1\",\n attrs: { title: \"Synology\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"The Synology DiskStation NAS.\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Indexer is the daemon running on the Synology NAS to build its media database.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"use_synoindex\",\n explanations: [\n \"Note: requires Medusa to be running on your Synology NAS.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synologyIndex.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synologyIndex,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.synologyIndex.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synologyIndex.enabled,\n expression: \"notifiers.synologyIndex.enabled\"\n }\n ],\n attrs: { id: \"content_use_synoindex\" }\n },\n [\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ]\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno2\",\n attrs: { title: \"Synology Indexer\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology Notifier\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Notifier is the notification system of Synology DSM\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_synologynotifier\",\n explanations: [\n \"Send notifications to the Synology Notifier?\",\n \"Note: requires Medusa to be running on your Synology DSM.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.synology, \"enabled\", $$v)\n },\n expression: \"notifiers.synology.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synology.enabled,\n expression: \"notifiers.synology.enabled\"\n }\n ],\n attrs: { id: \"content-use-synology-notifier\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"synology_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"synology_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pytivo\",\n attrs: { title: \"pyTivo\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://pytivo.sourceforge.net/wiki/index.php/PyTivo\"\n }\n },\n [_vm._v(\"pyTivo\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"pyTivo is both an HMO and GoBack server. This notifier will load the completed downloads to your Tivo.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pytivo\",\n explanations: [\"Send notifications to pyTivo?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"enabled\", $$v)\n },\n expression: \"notifiers.pyTivo.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pyTivo.enabled,\n expression: \"notifiers.pyTivo.enabled\"\n }\n ],\n attrs: { id: \"content-use-pytivo\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo IP:Port\",\n id: \"pytivo_host\",\n explanations: [\n \"host running pyTivo (eg. 192.168.1.1:9032)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"host\", $$v)\n },\n expression: \"notifiers.pyTivo.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo share name\",\n id: \"pytivo_name\",\n explanations: [\n \"(Messages & Settings > Account & System Information > System Information > DVR name)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.shareName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pyTivo,\n \"shareName\",\n $$v\n )\n },\n expression: \"notifiers.pyTivo.shareName\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Tivo name\",\n id: \"pytivo_tivo_name\",\n explanations: [\n \"value used in pyTivo Web Configuration to name the share.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"name\", $$v)\n },\n expression: \"notifiers.pyTivo.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"devices\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-growl\",\n attrs: { title: \"Growl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://growl.info/\" } },\n [_vm._v(\"Growl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A cross-platform unobtrusive global notification system.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_growl_client\",\n explanations: [\"Send Growl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"enabled\", $$v)\n },\n expression: \"notifiers.growl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.growl.enabled,\n expression: \"notifiers.growl.enabled\"\n }\n ],\n attrs: { id: \"content-use-growl-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"growl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"growl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"growl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.growl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.growl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Growl IP:Port\",\n id: \"growl_host\",\n explanations: [\n \"host running Growl (eg. 192.168.1.100:23053)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"host\", $$v)\n },\n expression: \"notifiers.growl.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"growl_password\",\n explanations: [\n \"may leave blank if Medusa is on the same host.\",\n \"otherwise Growl requires a password to be used.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.growl.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testGrowl-result\" }\n },\n [\n _vm._v(\n \"Click below to register and test Growl, this is required for Growl notifications to work.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Register Growl\",\n id: \"testGrowl\"\n },\n on: { click: _vm.testGrowl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-prowl\",\n attrs: { title: \"Prowl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://www.prowlapp.com/\" } },\n [_vm._v(\"Prowl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"A Growl client for iOS.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_prowl\",\n explanations: [\"Send Prowl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.prowl, \"enabled\", $$v)\n },\n expression: \"notifiers.prowl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.prowl.enabled,\n expression: \"notifiers.prowl.enabled\"\n }\n ],\n attrs: { id: \"content-use-prowl\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"prowl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"prowl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"prowl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.prowl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.prowl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Prowl Message Title\",\n id: \"prowl_message_title\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.messageTitle,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"messageTitle\",\n $$v\n )\n },\n expression: \"notifiers.prowl.messageTitle\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_api\",\n label: \"Api\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl_api\",\n id: \"prowl_api\",\n \"csv-enabled\": \"\",\n \"list-items\": _vm.notifiers.prowl.api\n },\n on: { change: _vm.onChangeProwlApi }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n [\n _vm._v(\n \"Prowl API(s) listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\n \" shows.\\n Your Prowl API key is available at:\\n \"\n ),\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://www.prowlapp.com/api_settings.php\"\n }\n },\n [\n _vm._v(\n \"\\n https://www.prowlapp.com/api_settings.php\"\n )\n ]\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_show_notification_list\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n placeholder: \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.prowlUpdateApiKeys($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl-show-list\",\n id: \"prowl-show-list\",\n \"list-items\":\n _vm.prowlSelectedShowApiKeys\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"prowl\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Configure per-show notifications here by entering Prowl API key(s), after selecting a show in the drop-down box.\\n Be sure to activate the 'Save for this show' button below after each entry.\\n \"\n ),\n _c(\"span\", [\n _vm._v(\n \"The values are automatically saved when adding the api key.\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_priority\",\n label: \"Prowl priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.prowl.priority,\n expression: \"notifiers.prowl.priority\"\n }\n ],\n staticClass: \"form-control input-sm\",\n attrs: {\n id: \"prowl_priority\",\n name: \"prowl_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.prowl,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.prowlPriorityOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Prowl messages from Medusa.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testProwl-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Prowl\",\n id: \"testProwl\"\n },\n on: { click: _vm.testProwl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-libnotify\",\n attrs: { title: \"Libnotify\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://library.gnome.org/devel/libnotify/\"\n }\n },\n [_vm._v(\"Libnotify\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"p\",\n [\n _vm._v(\n \"The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package \"\n ),\n _c(\n \"app-link\",\n { attrs: { href: \"apt:python-notify\" } },\n [_vm._v(\"python-notify\")]\n ),\n _vm._v(\").\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_libnotify_client\",\n explanations: [\"Send Libnotify notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.libnotify.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.libnotify.enabled,\n expression: \"notifiers.libnotify.enabled\"\n }\n ],\n attrs: { id: \"content-use-libnotify\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"libnotify_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"libnotify_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"libnotify_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testLibnotify-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Libnotify\",\n id: \"testLibnotify\"\n },\n on: { click: _vm.testLibnotify }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushover\",\n attrs: { title: \"Pushover\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushover.net/\" } },\n [_vm._v(\"Pushover\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushover makes it easy to send real-time notifications to your Android and iOS devices.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushover_client\",\n explanations: [\"Send Pushover notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushover, \"enabled\", $$v)\n },\n expression: \"notifiers.pushover.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushover.enabled,\n expression: \"notifiers.pushover.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushover\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushover_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushover_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushover_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushover User Key\",\n id: \"pushover_userkey\",\n explanations: [\n \"User Key of your Pushover account\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.userKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"userKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.userKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Pushover API Key\",\n id: \"pushover_apikey\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.apiKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"apiKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.apiKey\"\n }\n },\n [\n _c(\n \"span\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://pushover.net/apps/build/\"\n }\n },\n [_c(\"b\", [_vm._v(\"Click here\")])]\n ),\n _vm._v(\" to create a Pushover API key\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_device\",\n label: \"Pushover Devices\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"pushover_device\",\n id: \"pushover_device\",\n \"list-items\":\n _vm.notifiers.pushover.device\n },\n on: {\n change: function($event) {\n _vm.notifiers.pushover.device = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"List of pushover devices you want to send notifications to\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_sound\",\n label: \"Pushover notification sound\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.pushover.sound,\n expression: \"notifiers.pushover.sound\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_sound\",\n name: \"pushover_sound\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"sound\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.pushoverSoundOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"Choose notification sound to use\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_priority\",\n label: \"Pushover notification priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushover.priority,\n expression:\n \"notifiers.pushover.priority\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_priority\",\n name: \"pushover_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushoverPriorityOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Pushover messages from Medusa\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushover-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushover\",\n id: \"testPushover\"\n },\n on: { click: _vm.testPushover }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-boxcar2\",\n attrs: { title: \"Boxcar 2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://new.boxcar.io/\" } },\n [_vm._v(\"Boxcar 2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Read your messages where and when you want them!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_boxcar2\",\n explanations: [\"Send boxcar2 notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.boxcar2, \"enabled\", $$v)\n },\n expression: \"notifiers.boxcar2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.boxcar2.enabled,\n expression: \"notifiers.boxcar2.enabled\"\n }\n ],\n attrs: { id: \"content-use-boxcar2-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"boxcar2_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"boxcar2_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"boxcar2_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.boxcar2\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Boxcar2 Access token\",\n id: \"boxcar2_accesstoken\",\n explanations: [\n \"access token for your Boxcar account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.accessToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"accessToken\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.accessToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testBoxcar2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Boxcar\",\n id: \"testBoxcar2\"\n },\n on: { click: _vm.testBoxcar2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushalot\",\n attrs: { title: \"Pushalot\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushalot.com\" } },\n [_vm._v(\"Pushalot\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushalot is a platform for receiving custom push notifications to connected devices running Windows Phone or Windows 8.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushalot\",\n explanations: [\"Send Pushalot notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushalot, \"enabled\", $$v)\n },\n expression: \"notifiers.pushalot.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushalot.enabled,\n expression: \"notifiers.pushalot.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushalot-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushalot_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushalot_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushalot_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushalot authorization token\",\n id: \"pushalot_authorizationtoken\",\n explanations: [\n \"authorization token of your Pushalot account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.authToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"authToken\",\n $$v\n )\n },\n expression: \"notifiers.pushalot.authToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushalot-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushalot\",\n id: \"testPushalot\"\n },\n on: { click: _vm.testPushalot }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushbullet\",\n attrs: { title: \"Pushbullet\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.pushbullet.com\" } },\n [_vm._v(\"Pushbullet\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushbullet is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushbullet\",\n explanations: [\"Send pushbullet notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushbullet.enabled,\n expression: \"notifiers.pushbullet.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushbullet-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushbullet_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushbullet_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushbullet_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushbullet API key\",\n id: \"pushbullet_api\",\n explanations: [\n \"API key of your Pushbullet account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushbullet_device_list\",\n label: \"Pushbullet devices\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Update device list\",\n id: \"get-pushbullet-devices\"\n },\n on: {\n click: _vm.getPushbulletDeviceOptions\n }\n }),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushbullet.device,\n expression:\n \"notifiers.pushbullet.device\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushbullet_device_list\",\n name: \"pushbullet_device_list\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"device\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushbulletDeviceOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value },\n on: {\n change: function($event) {\n _vm.pushbulletTestInfo =\n \"Don't forget to save your new pushbullet settings.\"\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"select device you wish to push to.\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushbullet-resultsfsf\" }\n },\n [_vm._v(_vm._s(_vm.pushbulletTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushbullet\",\n id: \"testPushbullet\"\n },\n on: { click: _vm.testPushbulletApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-join\",\n attrs: { title: \"Join\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://joaoapps.com/join/\" } },\n [_vm._v(\"Join\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Join is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_join\",\n explanations: [\"Send join notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"enabled\", $$v)\n },\n expression: \"notifiers.join.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.join.enabled,\n expression: \"notifiers.join.enabled\"\n }\n ],\n attrs: { id: \"content-use-join-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"join_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"join_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"join_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.join.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.join.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join API key\",\n id: \"join_api\",\n explanations: [\n \"API key of your Join account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"api\", $$v)\n },\n expression: \"notifiers.join.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join Device ID(s) key\",\n id: \"join_device\",\n explanations: [\n \"Enter DeviceID of the device(s) you wish to send notifications to, comma separated if using multiple.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.device,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"device\", $$v)\n },\n expression: \"notifiers.join.device\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testJoin-result\" }\n },\n [_vm._v(_vm._s(_vm.joinTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Join\",\n id: \"testJoin\"\n },\n on: { click: _vm.testJoinApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-freemobile\",\n attrs: { title: \"Free Mobile\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://mobile.free.fr/\" } },\n [_vm._v(\"Free Mobile\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Free Mobile is a famous French cellular network provider. It provides to their customer a free SMS API.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_freemobile\",\n explanations: [\"Send SMS notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.freemobile.enabled,\n expression: \"notifiers.freemobile.enabled\"\n }\n ],\n attrs: { id: \"content-use-freemobile-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"freemobile_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"freemobile_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"freemobile_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile customer ID\",\n id: \"freemobile_id\",\n explanations: [\n \"It's your Free Mobile customer ID (8 digits)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.id,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"id\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile API Key\",\n id: \"freemobile_apikey\",\n explanations: [\n \"Find your API Key in your customer portal.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testFreeMobile-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test SMS\",\n id: \"testFreeMobile\"\n },\n on: { click: _vm.testFreeMobile }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-telegram\",\n attrs: { title: \"Telegram\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://telegram.org/\" } },\n [_vm._v(\"Telegram\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Telegram is a cloud-based instant messaging service.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_telegram\",\n explanations: [\"Send Telegram notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"enabled\", $$v)\n },\n expression: \"notifiers.telegram.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.telegram.enabled,\n expression: \"notifiers.telegram.enabled\"\n }\n ],\n attrs: { id: \"content-use-telegram-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"telegram_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"telegram_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"telegram_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"User/group ID\",\n id: \"telegram_id\",\n explanations: [\n \"Contact @myidbot on Telegram to get an ID\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.id,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"id\", $$v)\n },\n expression: \"notifiers.telegram.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot API token\",\n id: \"telegram_apikey\",\n explanations: [\n \"Contact @BotFather on Telegram to set up one\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"api\", $$v)\n },\n expression: \"notifiers.telegram.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTelegram-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Telegram\",\n id: \"testTelegram\"\n },\n on: { click: _vm.testTelegram }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-discord\",\n attrs: { title: \"Discord\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://discordapp.com/\" } },\n [_vm._v(\"Discord\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Discord is a cloud-based All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone..\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_discord\",\n explanations: [\"Send Discord notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"enabled\", $$v)\n },\n expression: \"notifiers.discord.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.discord.enabled,\n expression: \"notifiers.discord.enabled\"\n }\n ],\n attrs: { id: \"content-use-discord-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"discord_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.discord.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"discord_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"discord_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.discord\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Channel webhook\",\n id: \"discord_webhook\",\n explanations: [\n \"Add a webhook to a channel, use the returned url here\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.discord.webhook\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Text to speech\",\n id: \"discord_tts\",\n explanations: [\n \"Use discord text to speech feature\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.tts,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"tts\", $$v)\n },\n expression: \"notifiers.discord.tts\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testDiscord-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Discord\",\n id: \"testDiscord\"\n },\n on: { click: _vm.testDiscord }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"social\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-twitter\",\n attrs: { title: \"Twitter\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.twitter.com\" } },\n [_vm._v(\"Twitter\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A social networking and microblogging service, enabling its users to send and read other users' messages called tweets.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_twitter\",\n explanations: [\n \"Should Medusa post tweets on Twitter?\",\n \"Note: you may want to use a secondary account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"enabled\", $$v)\n },\n expression: \"notifiers.twitter.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.twitter.enabled,\n expression: \"notifiers.twitter.enabled\"\n }\n ],\n attrs: { id: \"content-use-twitter\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"twitter_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.twitter.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"twitter_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"twitter_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.twitter\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Send direct message\",\n id: \"twitter_usedm\",\n explanations: [\n \"send a notification via Direct Message, not via status update\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.directMessage,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"directMessage\",\n $$v\n )\n },\n expression: \"notifiers.twitter.directMessage\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Send DM to\",\n id: \"twitter_dmto\",\n explanations: [\n \"Twitter account to send Direct Messages to (must follow you)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.dmto,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"dmto\", $$v)\n },\n expression: \"notifiers.twitter.dmto\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep1\",\n label: \"Step 1\"\n }\n },\n [\n _c(\n \"span\",\n { staticStyle: { \"font-size\": \"11px\" } },\n [\n _vm._v(\n 'Click the \"Request Authorization\" button. '\n ),\n _c(\"br\"),\n _vm._v(\n \"This will open a new page containing an auth key. \"\n ),\n _c(\"br\"),\n _vm._v(\n \"Note: if nothing happens check your popup blocker.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Request Authorization\",\n id: \"twitter-step-1\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep1($event)\n }\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep2\",\n label: \"Step 2\"\n }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.twitterKey,\n expression: \"twitterKey\"\n }\n ],\n staticClass:\n \"form-control input-sm max-input350\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n id: \"twitter_key\",\n placeholder:\n \"Enter the key Twitter gave you, and click 'Verify Key'\"\n },\n domProps: { value: _vm.twitterKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.twitterKey = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Verify Key\",\n id: \"twitter-step-2\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep2($event)\n }\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"testNotification\",\n attrs: { id: \"testTwitter-result\" },\n domProps: {\n innerHTML: _vm._s(_vm.twitterTestInfo)\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Twitter\",\n id: \"testTwitter\"\n },\n on: { click: _vm.twitterTest }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-trakt\",\n attrs: { title: \"Trakt\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://trakt.tv/\" } },\n [_vm._v(\"Trakt\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"trakt helps keep a record of what TV shows and movies you are watching. Based on your favorites, trakt recommends additional shows and movies you'll enjoy!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_trakt\",\n explanations: [\"Send Trakt.tv notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"enabled\", $$v)\n },\n expression: \"notifiers.trakt.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.enabled,\n expression: \"notifiers.trakt.enabled\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"trakt_username\",\n explanations: [\n \"username of your Trakt account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.trakt.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_pin\",\n label: \"Trakt PIN\"\n }\n },\n [\n _c(\"input\", {\n staticClass:\n \"form-control input-sm max-input250\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n name: \"trakt_pin\",\n id: \"trakt_pin\",\n value: \"\",\n disabled: _vm.notifiers.trakt.accessToken\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: _vm.traktNewTokenMessage,\n id: \"TraktGetPin\"\n },\n on: { click: _vm.TraktGetPin }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa hide\",\n attrs: {\n type: \"button\",\n value: \"Authorize Medusa\",\n id: \"authTrakt\"\n },\n on: { click: _vm.authTrakt }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"PIN code to authorize Medusa to access Trakt on your behalf.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n label: \"API Timeout\",\n id: \"trakt_timeout\",\n explanations: [\n \"Seconds to wait for Trakt API to respond. (Use 0 to wait forever)\"\n ]\n },\n model: {\n value: _vm.notifiers.trakt.timeout,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"timeout\",\n $$v\n )\n },\n expression: \"notifiers.trakt.timeout\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Default indexer\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.defaultIndexer,\n expression:\n \"notifiers.trakt.defaultIndexer\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_default_indexer\",\n name: \"trakt_default_indexer\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"defaultIndexer\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktIndexersOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync libraries\",\n id: \"trakt_sync\",\n explanations: [\n \"Sync your Medusa show library with your Trakt collection.\",\n \"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\",\n \"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.sync,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"sync\", $$v)\n },\n expression: \"notifiers.trakt.sync\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.sync,\n expression: \"notifiers.trakt.sync\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove Episodes From Collection\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"Remove an Episode from your Trakt Collection if it is not in your Medusa Library.\",\n \"Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync watchlist\",\n id: \"trakt_sync_watchlist\",\n explanations: [\n \"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\",\n \"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\",\n \"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.syncWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncWatchlist\",\n $$v\n )\n },\n expression: \"notifiers.trakt.syncWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.syncWatchlist,\n expression:\n \"notifiers.trakt.syncWatchlist\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Watchlist add method\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.methodAdd,\n expression:\n \"notifiers.trakt.methodAdd\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_method_add\",\n name: \"trakt_method_add\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"methodAdd\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktMethodOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"method in which to download episodes for new shows.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove episode\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"remove an episode from your watchlist after it's downloaded.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove series\",\n id: \"trakt_remove_serieslist\",\n explanations: [\n \"remove the whole series from your watchlist after any download.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeSerieslist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeSerieslist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeSerieslist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove watched show\",\n id: \"trakt_remove_show_from_application\",\n explanations: [\n \"remove the show from Medusa if it's ended and completely watched\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt\n .removeShowFromApplication,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeShowFromApplication\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeShowFromApplication\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Start paused\",\n id: \"trakt_start_paused\",\n explanations: [\n \"shows grabbed from your trakt watchlist start paused.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.startPaused,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"startPaused\",\n $$v\n )\n },\n expression: \"notifiers.trakt.startPaused\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Trakt blackList name\",\n id: \"trakt_blacklist_name\",\n explanations: [\n \"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.blacklistName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"blacklistName\",\n $$v\n )\n },\n expression: \"notifiers.trakt.blacklistName\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTrakt-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Trakt\",\n id: \"testTrakt\"\n },\n on: { click: _vm.testTrakt }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Force Sync\",\n id: \"forceSync\"\n },\n on: { click: _vm.traktForceSync }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", id: \"trakt_pin_url\" },\n domProps: { value: _vm.notifiers.trakt.pinUrl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-email\",\n attrs: { title: \"Email\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://en.wikipedia.org/wiki/Comparison_of_webmail_providers\"\n }\n },\n [_vm._v(\"Email\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Allows configuration of email notifications on a per show basis.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_email\",\n explanations: [\"Send email notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"enabled\", $$v)\n },\n expression: \"notifiers.email.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.email.enabled,\n expression: \"notifiers.email.enabled\"\n }\n ],\n attrs: { id: \"content-use-email\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"email_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"email_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"email_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.email\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.email.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP host\",\n id: \"email_host\",\n explanations: [\n \"hostname of your SMTP email server.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"host\", $$v)\n },\n expression: \"notifiers.email.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n min: 1,\n step: 1,\n label: \"SMTP port\",\n id: \"email_port\",\n explanations: [\n \"port number used to connect to your SMTP host.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.port,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"port\", $$v)\n },\n expression: \"notifiers.email.port\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP from\",\n id: \"email_from\",\n explanations: [\n \"sender email address, some hosts require a real address.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.from,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"from\", $$v)\n },\n expression: \"notifiers.email.from\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Use TLS\",\n id: \"email_tls\",\n explanations: [\"check to use TLS encryption.\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.tls,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"tls\", $$v)\n },\n expression: \"notifiers.email.tls\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP username\",\n id: \"email_username\",\n explanations: [\n \"(optional) your SMTP server username.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.email.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"SMTP password\",\n id: \"email_password\",\n explanations: [\n \"(optional) your SMTP server password.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.email.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_list\",\n label: \"Global email list\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.notifiers.email.addressList\n },\n on: { change: _vm.emailUpdateAddressList }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Email Subject\",\n id: \"email_subject\",\n explanations: [\n \"Use a custom subject for some privacy protection?\",\n \"(Leave blank for the default Medusa subject)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.subject,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"subject\",\n $$v\n )\n },\n expression: \"notifiers.email.subject\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_show\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n placeholder: \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.emailUpdateShowEmail($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.emailSelectedShowAdresses\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"email\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEmail-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Email\",\n id: \"testEmail\"\n },\n on: { click: _vm.testEmail }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-slack\",\n attrs: { title: \"Slack\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://slack.com\" } },\n [_vm._v(\"Slack\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Slack is a messaging app for teams.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_slack_client\",\n explanations: [\"Send Slack notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.slack, \"enabled\", $$v)\n },\n expression: \"notifiers.slack.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.slack.enabled,\n expression: \"notifiers.slack.enabled\"\n }\n ],\n attrs: { id: \"content-use-slack-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"slack_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"slack_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"slack_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.slack\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.slack.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Slack Incoming Webhook\",\n id: \"slack_webhook\",\n explanations: [\n \"Create an incoming webhook, to communicate with your slack channel.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.slack.webhook\"\n }\n },\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://my.slack.com/services/new/incoming-webhook\"\n }\n },\n [\n _vm._v(\n \"https://my.slack.com/services/new/incoming-webhook/\"\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testSlack-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Slack\",\n id: \"testSlack\"\n },\n on: { click: _vm.testSlack }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n }),\n _vm._v(\" \"),\n _c(\"br\")\n ])\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clearfix\" })\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"label\",\n { staticClass: \"col-sm-2 control-label\", attrs: { for: \"kodi_host\" } },\n [_c(\"span\", [_vm._v(\"KODI IP:Port\")])]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"clear-left\" }, [\n _c(\"p\", [\n _c(\"b\", [_vm._v(\"Note:\")]),\n _vm._v(\" some Plex Home Theaters \"),\n _c(\"b\", { staticClass: \"boldest\" }, [_vm._v(\"do not\")]),\n _vm._v(\" support notifications e.g. Plexapp for Samsung TVs\")\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/config-notifications.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"config-notifications\" } },\n [\n _c(\"vue-snotify\"),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"config\" } }, [\n _c(\"div\", { attrs: { id: \"config-content\" } }, [\n _c(\n \"form\",\n {\n attrs: { id: \"configForm\", method: \"post\" },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.save()\n }\n }\n },\n [\n _c(\"div\", { attrs: { id: \"config-components\" } }, [\n _c(\"ul\", [\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#home-theater-nas\" } }, [\n _vm._v(\"Home Theater / NAS\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#devices\" } }, [\n _vm._v(\"Devices\")\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"li\",\n [\n _c(\"app-link\", { attrs: { href: \"#social\" } }, [\n _vm._v(\"Social\")\n ])\n ],\n 1\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"home-theater-nas\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-kodi\",\n attrs: { title: \"KODI\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://kodi.tv\" } },\n [_vm._v(\"KODI\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A free and open source cross-platform media center and home entertainment system software with a 10-foot user interface designed for the living-room TV.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_kodi\",\n explanations: [\"Send KODI commands?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.kodi, \"enabled\", $$v)\n },\n expression: \"notifiers.kodi.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.kodi.enabled,\n expression: \"notifiers.kodi.enabled\"\n }\n ],\n attrs: { id: \"content-use-kodi\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Always on\",\n id: \"kodi_always_on\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.alwaysOn,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"alwaysOn\",\n $$v\n )\n },\n expression: \"notifiers.kodi.alwaysOn\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"kodi_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"kodi_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.kodi.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"kodi_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.kodi.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.kodi.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update library\",\n id: \"kodi_update_library\",\n explanations: [\n \"update KODI library when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.library,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"library\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.library\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Full library update\",\n id: \"kodi_update_full\",\n explanations: [\n \"perform a full library update if update per-show fails?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.full,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"full\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.full\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Clean library\",\n id: \"kodi_clean_library\",\n explanations: [\n \"clean KODI library when replaces a already downloaded episode?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.cleanLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"cleanLibrary\",\n $$v\n )\n },\n expression: \"notifiers.kodi.cleanLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Only update first host\",\n id: \"kodi_update_onlyfirst\",\n explanations: [\n \"only send library updates/clean to the first active host?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.update.onlyFirst,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi.update,\n \"onlyFirst\",\n $$v\n )\n },\n expression: \"notifiers.kodi.update.onlyFirst\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-sm-10 content\" },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"kodi_host\",\n id: \"kodi_host\",\n \"list-items\": _vm.notifiers.kodi.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.kodi.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"host running KODI (eg. 192.168.1.100:8080)\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"kodi_username\",\n explanations: [\n \"username for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.kodi.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"kodi_password\",\n explanations: [\n \"password for your KODI server (blank for none)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.kodi.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.kodi,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.kodi.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testKODI-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test KODI\",\n id: \"testKODI\"\n },\n on: { click: _vm.testKODI }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plex\",\n attrs: { title: \"Plex Media Server\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Media Server\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Experience your media on a visually stunning, easy to use interface on your Mac connected to your TV. Your media library has never looked this good!\"\n )\n ]),\n _vm._v(\" \"),\n _vm.notifiers.plex.server.enabled\n ? _c(\"p\", { staticClass: \"plexinfo\" }, [\n _vm._v(\n \"For sending notifications to Plex Home Theater (PHT) clients, use the KODI notifier with port \"\n ),\n _c(\"b\", [_vm._v(\"3005\")]),\n _vm._v(\".\")\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_server\",\n explanations: [\"Send Plex server notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.server.enabled,\n expression: \"notifiers.plex.server.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-server\" }\n },\n [\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Plex Media Server Auth Token\",\n id: \"plex_server_token\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.token,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"token\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.token\"\n }\n },\n [\n _c(\"p\", [_vm._v(\"Auth Token used by plex\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"span\",\n [\n _vm._v(\"See: \"),\n _c(\n \"app-link\",\n {\n staticClass: \"wiki\",\n attrs: {\n href:\n \"https://support.plex.tv/hc/en-us/articles/204059436-Finding-your-account-token-X-Plex-Token\"\n }\n },\n [\n _c(\"strong\", [\n _vm._v(\n \"Finding your account token\"\n )\n ])\n ]\n )\n ],\n 1\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_server_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_server_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Update Library\",\n id: \"plex_update_library\",\n explanations: [\"log errors when unreachable?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.server.updateLibrary,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"updateLibrary\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.server.updateLibrary\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_server_host\",\n label: \"Plex Media Server IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_server_host\",\n id: \"plex_server_host\",\n \"list-items\":\n _vm.notifiers.plex.server.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.server.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Media Server\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.1:32400, 192.168.1.2:32400)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"plex_server_https\",\n explanations: [\n \"use https for plex media server requests?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.server.https,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.server,\n \"https\",\n $$v\n )\n },\n expression: \"notifiers.plex.server.https\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPMS-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Media Server(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Media Server\",\n id: \"testPMS\"\n },\n on: { click: _vm.testPMS }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clear-left\" }, [\n _vm._v(\" \")\n ])\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-plexth\",\n attrs: { title: \"Plex Media Client\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://plex.tv\" } },\n [_vm._v(\"Plex Home Theater\")]\n )\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_plex_client\",\n explanations: [\n \"Send Plex Home Theater notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.plex.client.enabled,\n expression: \"notifiers.plex.client.enabled\"\n }\n ],\n attrs: { id: \"content-use-plex-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"plex_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"plex_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"plex_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.plex.client\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.plex.client.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"plex_client_host\",\n label: \"Plex Home Theater IP:Port\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"plex_client_host\",\n id: \"plex_client_host\",\n \"list-items\":\n _vm.notifiers.plex.client.host\n },\n on: {\n change: function($event) {\n _vm.notifiers.plex.client.host = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"one or more hosts running Plex Home Theater\"\n ),\n _c(\"br\"),\n _vm._v(\n \"(eg. 192.168.1.100:3000, 192.168.1.101:3000)\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"plex_client_username\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"plex_client_password\",\n explanations: [\"blank = no authentication\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.plex.client.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.plex.client,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.plex.client.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-pair\" }, [\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPHT-result\" }\n },\n [\n _vm._v(\n \"Click below to test Plex Home Theater(s)\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Plex Home Theater\",\n id: \"testPHT\"\n },\n on: { click: _vm.testPHT }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: {\n type: \"submit\",\n value: \"Save Changes\"\n }\n }),\n _vm._v(\" \"),\n _vm._m(1)\n ])\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-emby\",\n attrs: { title: \"Emby\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://emby.media\" } },\n [_vm._v(\"Emby\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A home media server built using other popular open source technologies.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_emby\",\n explanations: [\"Send update commands to Emby?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"enabled\", $$v)\n },\n expression: \"notifiers.emby.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.emby.enabled,\n expression: \"notifiers.emby.enabled\"\n }\n ],\n attrs: { id: \"content_use_emby\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Emby IP:Port\",\n id: \"emby_host\",\n explanations: [\n \"host running Emby (eg. 192.168.1.100:8096)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"host\", $$v)\n },\n expression: \"notifiers.emby.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: { label: \"Api Key\", id: \"emby_apikey\" },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.emby.apiKey,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.emby, \"apiKey\", $$v)\n },\n expression: \"notifiers.emby.apiKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEMBY-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Emby\",\n id: \"testEMBY\"\n },\n on: { click: _vm.testEMBY }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJ\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJ, is the official media jukebox interface made available for the Popcorn Hour 200-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmj\",\n explanations: [\"Send update commands to NMJ?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"enabled\", $$v)\n },\n expression: \"notifiers.nmj.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmj.enabled,\n expression: \"notifiers.nmj.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmj\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmj_host\",\n explanations: [\n \"IP address of Popcorn 200-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"host\", $$v)\n },\n expression: \"notifiers.nmj.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"settingsNMJ\",\n label: \"Get settings\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Get Settings\",\n id: \"settingsNMJ\"\n },\n on: { click: _vm.settingsNMJ }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on and NMJ running.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ database\",\n id: \"nmj_database\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.database,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"database\", $$v)\n },\n expression: \"notifiers.nmj.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJ mount\",\n id: \"nmj_mount\",\n explanations: [\n \"automatically filled via the 'Get Settings' button.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmj.mount,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmj, \"mount\", $$v)\n },\n expression: \"notifiers.nmj.mount\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJ-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJ\",\n id: \"testNMJ\"\n },\n on: { click: _vm.testNMJ }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-nmj\",\n attrs: { title: \"Networked Media Jukebox v2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: { href: \"http://www.popcornhour.com/\" }\n },\n [_vm._v(\"NMJv2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"The Networked Media Jukebox, or NMJv2, is the official media jukebox interface made available for the Popcorn Hour 300 & 400-series.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_nmjv2\",\n explanations: [\n \"Send popcorn hour (nmjv2) notifications?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"enabled\", $$v)\n },\n expression: \"notifiers.nmjv2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.nmjv2.enabled,\n expression: \"notifiers.nmjv2.enabled\"\n }\n ],\n attrs: { id: \"content-use-nmjv2\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Popcorn IP address\",\n id: \"nmjv2_host\",\n explanations: [\n \"IP address of Popcorn 300/400-series (eg. 192.168.1.100)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.nmjv2, \"host\", $$v)\n },\n expression: \"notifiers.nmjv2.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_location\",\n label: \"Database location\"\n }\n },\n [\n _c(\n \"label\",\n {\n staticClass: \"space-right\",\n attrs: { for: \"NMJV2_DBLOC_A\" }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"local\",\n id: \"NMJV2_DBLOC_A\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Local Media\\n \"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n { attrs: { for: \"NMJV2_DBLOC_B\" } },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.nmjv2.dbloc,\n expression: \"notifiers.nmjv2.dbloc\"\n }\n ],\n attrs: {\n type: \"radio\",\n name: \"nmjv2_dbloc\",\n VALUE: \"network\",\n id: \"NMJV2_DBLOC_B\"\n },\n domProps: {\n checked: _vm._q(\n _vm.notifiers.nmjv2.dbloc,\n null\n )\n },\n on: {\n change: function($event) {\n return _vm.$set(\n _vm.notifiers.nmjv2,\n \"dbloc\",\n null\n )\n }\n }\n }),\n _vm._v(\n \"\\n PCH Network Media\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"nmjv2_database_instance\",\n label: \"Database instance\"\n }\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { id: \"NMJv2db_instance\" }\n },\n [\n _c(\"option\", { attrs: { value: \"0\" } }, [\n _vm._v(\"#1 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"1\" } }, [\n _vm._v(\"#2 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"2\" } }, [\n _vm._v(\"#3 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"3\" } }, [\n _vm._v(\"#4 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"4\" } }, [\n _vm._v(\"#5 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"5\" } }, [\n _vm._v(\"#6 \")\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"6\" } }, [\n _vm._v(\"#7 \")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"adjust this value if the wrong database is selected.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"get_nmjv2_find_database\",\n label: \"Find database\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Find Database\",\n id: \"settingsNMJv2\"\n },\n on: { click: _vm.settingsNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"the Popcorn Hour device must be powered on.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"NMJv2 database\",\n id: \"nmjv2_database\",\n explanations: [\n \"automatically filled via the 'Find Database' buttons.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.nmjv2.database,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.nmjv2,\n \"database\",\n $$v\n )\n },\n expression: \"notifiers.nmjv2.database\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testNMJv2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test NMJv2\",\n id: \"testNMJv2\"\n },\n on: { click: _vm.testNMJv2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno1\",\n attrs: { title: \"Synology\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"The Synology DiskStation NAS.\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Indexer is the daemon running on the Synology NAS to build its media database.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"HTTPS\",\n id: \"use_synoindex\",\n explanations: [\n \"Note: requires Medusa to be running on your Synology NAS.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synologyIndex.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synologyIndex,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.synologyIndex.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synologyIndex.enabled,\n expression: \"notifiers.synologyIndex.enabled\"\n }\n ],\n attrs: { id: \"content_use_synoindex\" }\n },\n [\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ]\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-syno2\",\n attrs: { title: \"Synology Indexer\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://synology.com/\" } },\n [_vm._v(\"Synology Notifier\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Synology Notifier is the notification system of Synology DSM\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_synologynotifier\",\n explanations: [\n \"Send notifications to the Synology Notifier?\",\n \"Note: requires Medusa to be running on your Synology DSM.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.synology, \"enabled\", $$v)\n },\n expression: \"notifiers.synology.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.synology.enabled,\n expression: \"notifiers.synology.enabled\"\n }\n ],\n attrs: { id: \"content-use-synology-notifier\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.synology.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"synology_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"synology_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.synology\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.synology,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.synology.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pytivo\",\n attrs: { title: \"pyTivo\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://pytivo.sourceforge.net/wiki/index.php/PyTivo\"\n }\n },\n [_vm._v(\"pyTivo\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"pyTivo is both an HMO and GoBack server. This notifier will load the completed downloads to your Tivo.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pytivo\",\n explanations: [\"Send notifications to pyTivo?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"enabled\", $$v)\n },\n expression: \"notifiers.pyTivo.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pyTivo.enabled,\n expression: \"notifiers.pyTivo.enabled\"\n }\n ],\n attrs: { id: \"content-use-pytivo\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo IP:Port\",\n id: \"pytivo_host\",\n explanations: [\n \"host running pyTivo (eg. 192.168.1.1:9032)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"host\", $$v)\n },\n expression: \"notifiers.pyTivo.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"pyTivo share name\",\n id: \"pytivo_name\",\n explanations: [\n \"(Messages & Settings > Account & System Information > System Information > DVR name)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.shareName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pyTivo,\n \"shareName\",\n $$v\n )\n },\n expression: \"notifiers.pyTivo.shareName\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Tivo name\",\n id: \"pytivo_tivo_name\",\n explanations: [\n \"value used in pyTivo Web Configuration to name the share.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pyTivo.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pyTivo, \"name\", $$v)\n },\n expression: \"notifiers.pyTivo.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"devices\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-growl\",\n attrs: { title: \"Growl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://growl.info/\" } },\n [_vm._v(\"Growl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A cross-platform unobtrusive global notification system.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_growl_client\",\n explanations: [\"Send Growl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"enabled\", $$v)\n },\n expression: \"notifiers.growl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.growl.enabled,\n expression: \"notifiers.growl.enabled\"\n }\n ],\n attrs: { id: \"content-use-growl-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"growl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"growl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.growl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"growl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.growl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.growl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Growl IP:Port\",\n id: \"growl_host\",\n explanations: [\n \"host running Growl (eg. 192.168.1.100:23053)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.growl, \"host\", $$v)\n },\n expression: \"notifiers.growl.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"Password\",\n id: \"growl_password\",\n explanations: [\n \"may leave blank if Medusa is on the same host.\",\n \"otherwise Growl requires a password to be used.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.growl.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.growl,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.growl.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testGrowl-result\" }\n },\n [\n _vm._v(\n \"Click below to register and test Growl, this is required for Growl notifications to work.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Register Growl\",\n id: \"testGrowl\"\n },\n on: { click: _vm.testGrowl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-prowl\",\n attrs: { title: \"Prowl\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://www.prowlapp.com/\" } },\n [_vm._v(\"Prowl\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"A Growl client for iOS.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_prowl\",\n explanations: [\"Send Prowl notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.prowl, \"enabled\", $$v)\n },\n expression: \"notifiers.prowl.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.prowl.enabled,\n expression: \"notifiers.prowl.enabled\"\n }\n ],\n attrs: { id: \"content-use-prowl\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"prowl_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"prowl_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.prowl.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"prowl_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.prowl\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.prowl.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Prowl Message Title\",\n id: \"prowl_message_title\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.prowl.messageTitle,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.prowl,\n \"messageTitle\",\n $$v\n )\n },\n expression: \"notifiers.prowl.messageTitle\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_api\",\n label: \"Api\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl_api\",\n id: \"prowl_api\",\n \"csv-enabled\": \"\",\n \"list-items\": _vm.notifiers.prowl.api\n },\n on: { change: _vm.onChangeProwlApi }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n [\n _vm._v(\n \"Prowl API(s) listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\n \" shows.\\n Your Prowl API key is available at:\\n \"\n ),\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://www.prowlapp.com/api_settings.php\"\n }\n },\n [\n _vm._v(\n \"\\n https://www.prowlapp.com/api_settings.php\"\n )\n ]\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_show_notification_list\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n placeholder: \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.prowlUpdateApiKeys($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"prowl-show-list\",\n id: \"prowl-show-list\",\n \"list-items\":\n _vm.prowlSelectedShowApiKeys\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"prowl\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Configure per-show notifications here by entering Prowl API key(s), after selecting a show in the drop-down box.\\n Be sure to activate the 'Save for this show' button below after each entry.\\n \"\n ),\n _c(\"span\", [\n _vm._v(\n \"The values are automatically saved when adding the api key.\"\n )\n ])\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"prowl_priority\",\n label: \"Prowl priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.prowl.priority,\n expression: \"notifiers.prowl.priority\"\n }\n ],\n staticClass: \"form-control input-sm\",\n attrs: {\n id: \"prowl_priority\",\n name: \"prowl_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.prowl,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.prowlPriorityOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Prowl messages from Medusa.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testProwl-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Prowl\",\n id: \"testProwl\"\n },\n on: { click: _vm.testProwl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-libnotify\",\n attrs: { title: \"Libnotify\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"http://library.gnome.org/devel/libnotify/\"\n }\n },\n [_vm._v(\"Libnotify\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"p\",\n [\n _vm._v(\n \"The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package \"\n ),\n _c(\n \"app-link\",\n { attrs: { href: \"apt:python-notify\" } },\n [_vm._v(\"python-notify\")]\n ),\n _vm._v(\").\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_libnotify_client\",\n explanations: [\"Send Libnotify notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.libnotify.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.libnotify.enabled,\n expression: \"notifiers.libnotify.enabled\"\n }\n ],\n attrs: { id: \"content-use-libnotify\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"libnotify_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.libnotify.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"libnotify_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"libnotify_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.libnotify\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.libnotify,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.libnotify.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testLibnotify-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Libnotify\",\n id: \"testLibnotify\"\n },\n on: { click: _vm.testLibnotify }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushover\",\n attrs: { title: \"Pushover\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushover.net/\" } },\n [_vm._v(\"Pushover\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushover makes it easy to send real-time notifications to your Android and iOS devices.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushover_client\",\n explanations: [\"Send Pushover notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushover, \"enabled\", $$v)\n },\n expression: \"notifiers.pushover.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushover.enabled,\n expression: \"notifiers.pushover.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushover\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushover_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushover_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushover_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushover\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushover.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushover User Key\",\n id: \"pushover_userkey\",\n explanations: [\n \"User Key of your Pushover account\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.userKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"userKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.userKey\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Pushover API Key\",\n id: \"pushover_apikey\"\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushover.apiKey,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushover,\n \"apiKey\",\n $$v\n )\n },\n expression: \"notifiers.pushover.apiKey\"\n }\n },\n [\n _c(\n \"span\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://pushover.net/apps/build/\"\n }\n },\n [_c(\"b\", [_vm._v(\"Click here\")])]\n ),\n _vm._v(\" to create a Pushover API key\")\n ],\n 1\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_device\",\n label: \"Pushover Devices\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"pushover_device\",\n id: \"pushover_device\",\n \"list-items\":\n _vm.notifiers.pushover.device\n },\n on: {\n change: function($event) {\n _vm.notifiers.pushover.device = $event.map(\n function(x) {\n return x.value\n }\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"List of pushover devices you want to send notifications to\"\n )\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_sound\",\n label: \"Pushover notification sound\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.notifiers.pushover.sound,\n expression: \"notifiers.pushover.sound\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_sound\",\n name: \"pushover_sound\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"sound\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.pushoverSoundOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"Choose notification sound to use\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushover_priority\",\n label: \"Pushover notification priority\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushover.priority,\n expression:\n \"notifiers.pushover.priority\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushover_priority\",\n name: \"pushover_priority\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushover,\n \"priority\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushoverPriorityOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\n \"priority of Pushover messages from Medusa\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushover-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushover\",\n id: \"testPushover\"\n },\n on: { click: _vm.testPushover }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-boxcar2\",\n attrs: { title: \"Boxcar 2\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://new.boxcar.io/\" } },\n [_vm._v(\"Boxcar 2\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Read your messages where and when you want them!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_boxcar2\",\n explanations: [\"Send boxcar2 notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.boxcar2, \"enabled\", $$v)\n },\n expression: \"notifiers.boxcar2.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.boxcar2.enabled,\n expression: \"notifiers.boxcar2.enabled\"\n }\n ],\n attrs: { id: \"content-use-boxcar2-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"boxcar2_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"boxcar2_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"boxcar2_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.boxcar2\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.boxcar2.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Boxcar2 Access token\",\n id: \"boxcar2_accesstoken\",\n explanations: [\n \"access token for your Boxcar account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.boxcar2.accessToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.boxcar2,\n \"accessToken\",\n $$v\n )\n },\n expression: \"notifiers.boxcar2.accessToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testBoxcar2-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Boxcar\",\n id: \"testBoxcar2\"\n },\n on: { click: _vm.testBoxcar2 }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushalot\",\n attrs: { title: \"Pushalot\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://pushalot.com\" } },\n [_vm._v(\"Pushalot\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushalot is a platform for receiving custom push notifications to connected devices running Windows Phone or Windows 8.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushalot\",\n explanations: [\"Send Pushalot notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.pushalot, \"enabled\", $$v)\n },\n expression: \"notifiers.pushalot.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushalot.enabled,\n expression: \"notifiers.pushalot.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushalot-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushalot_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushalot_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushalot_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushalot\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushalot.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushalot authorization token\",\n id: \"pushalot_authorizationtoken\",\n explanations: [\n \"authorization token of your Pushalot account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushalot.authToken,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushalot,\n \"authToken\",\n $$v\n )\n },\n expression: \"notifiers.pushalot.authToken\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushalot-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushalot\",\n id: \"testPushalot\"\n },\n on: { click: _vm.testPushalot }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-pushbullet\",\n attrs: { title: \"Pushbullet\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.pushbullet.com\" } },\n [_vm._v(\"Pushbullet\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Pushbullet is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_pushbullet\",\n explanations: [\"Send pushbullet notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.pushbullet.enabled,\n expression: \"notifiers.pushbullet.enabled\"\n }\n ],\n attrs: { id: \"content-use-pushbullet-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"pushbullet_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"pushbullet_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"pushbullet_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.pushbullet\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.pushbullet.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Pushbullet API key\",\n id: \"pushbullet_api\",\n explanations: [\n \"API key of your Pushbullet account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.pushbullet.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.pushbullet.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"pushbullet_device_list\",\n label: \"Pushbullet devices\"\n }\n },\n [\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Update device list\",\n id: \"get-pushbullet-devices\"\n },\n on: {\n click: _vm.getPushbulletDeviceOptions\n }\n }),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.pushbullet.device,\n expression:\n \"notifiers.pushbullet.device\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"pushbullet_device_list\",\n name: \"pushbullet_device_list\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.pushbullet,\n \"device\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(\n _vm.pushbulletDeviceOptions,\n function(option) {\n return _c(\n \"option\",\n {\n key: option.value,\n domProps: { value: option.value },\n on: {\n change: function($event) {\n _vm.pushbulletTestInfo =\n \"Don't forget to save your new pushbullet settings.\"\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }\n ),\n 0\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _vm._v(\"select device you wish to push to.\")\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testPushbullet-resultsfsf\" }\n },\n [_vm._v(_vm._s(_vm.pushbulletTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Pushbullet\",\n id: \"testPushbullet\"\n },\n on: { click: _vm.testPushbulletApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-join\",\n attrs: { title: \"Join\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://joaoapps.com/join/\" } },\n [_vm._v(\"Join\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Join is a platform for receiving custom push notifications to connected devices running Android and desktop Chrome browsers.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_join\",\n explanations: [\"Send join notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"enabled\", $$v)\n },\n expression: \"notifiers.join.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.join.enabled,\n expression: \"notifiers.join.enabled\"\n }\n ],\n attrs: { id: \"content-use-join-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"join_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"join_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.join.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"join_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.join.notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.join,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.join.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join API key\",\n id: \"join_api\",\n explanations: [\n \"API key of your Join account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"api\", $$v)\n },\n expression: \"notifiers.join.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Join Device ID(s) key\",\n id: \"join_device\",\n explanations: [\n \"Enter DeviceID of the device(s) you wish to send notifications to, comma separated if using multiple.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.join.device,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.join, \"device\", $$v)\n },\n expression: \"notifiers.join.device\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testJoin-result\" }\n },\n [_vm._v(_vm._s(_vm.joinTestInfo))]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Join\",\n id: \"testJoin\"\n },\n on: { click: _vm.testJoinApi }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-freemobile\",\n attrs: { title: \"Free Mobile\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"http://mobile.free.fr/\" } },\n [_vm._v(\"Free Mobile\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Free Mobile is a famous French cellular network provider. It provides to their customer a free SMS API.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_freemobile\",\n explanations: [\"Send SMS notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.enabled,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"enabled\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.freemobile.enabled,\n expression: \"notifiers.freemobile.enabled\"\n }\n ],\n attrs: { id: \"content-use-freemobile-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"freemobile_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"freemobile_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"freemobile_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.freemobile\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.freemobile.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile customer ID\",\n id: \"freemobile_id\",\n explanations: [\n \"It's your Free Mobile customer ID (8 digits)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.id,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"id\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Free Mobile API Key\",\n id: \"freemobile_apikey\",\n explanations: [\n \"Find your API Key in your customer portal.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.freemobile.api,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.freemobile,\n \"api\",\n $$v\n )\n },\n expression: \"notifiers.freemobile.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testFreeMobile-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test SMS\",\n id: \"testFreeMobile\"\n },\n on: { click: _vm.testFreeMobile }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-telegram\",\n attrs: { title: \"Telegram\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://telegram.org/\" } },\n [_vm._v(\"Telegram\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Telegram is a cloud-based instant messaging service.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_telegram\",\n explanations: [\"Send Telegram notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"enabled\", $$v)\n },\n expression: \"notifiers.telegram.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.telegram.enabled,\n expression: \"notifiers.telegram.enabled\"\n }\n ],\n attrs: { id: \"content-use-telegram-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"telegram_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"telegram_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"telegram_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.telegram\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.telegram,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.telegram.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"User/group ID\",\n id: \"telegram_id\",\n explanations: [\n \"Contact @myidbot on Telegram to get an ID\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.id,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"id\", $$v)\n },\n expression: \"notifiers.telegram.id\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot API token\",\n id: \"telegram_apikey\",\n explanations: [\n \"Contact @BotFather on Telegram to set up one\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.telegram.api,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.telegram, \"api\", $$v)\n },\n expression: \"notifiers.telegram.api\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTelegram-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Telegram\",\n id: \"testTelegram\"\n },\n on: { click: _vm.testTelegram }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-discord\",\n attrs: { title: \"Discord\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://discordapp.com/\" } },\n [_vm._v(\"Discord\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Discord is a cloud-based All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone..\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_discord\",\n explanations: [\"Send Discord notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"enabled\", $$v)\n },\n expression: \"notifiers.discord.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.discord.enabled,\n expression: \"notifiers.discord.enabled\"\n }\n ],\n attrs: { id: \"content-use-discord-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"discord_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.discord.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"discord_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"discord_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.discord\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.discord.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Channel webhook\",\n id: \"discord_webhook\",\n explanations: [\n \"Add a webhook to a channel, use the returned url here\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.discord,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.discord.webhook\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Text to speech\",\n id: \"discord_tts\",\n explanations: [\n \"Use discord text to speech feature\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.tts,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"tts\", $$v)\n },\n expression: \"notifiers.discord.tts\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Bot username\",\n id: \"discord_name\",\n explanations: [\n \"Create a username for the Discord Bot to use\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.discord.name,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.discord, \"name\", $$v)\n },\n expression: \"notifiers.discord.name\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testDiscord-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Discord\",\n id: \"testDiscord\"\n },\n on: { click: _vm.testDiscord }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"social\" } }, [\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-twitter\",\n attrs: { title: \"Twitter\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://www.twitter.com\" } },\n [_vm._v(\"Twitter\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"A social networking and microblogging service, enabling its users to send and read other users' messages called tweets.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_twitter\",\n explanations: [\n \"Should Medusa post tweets on Twitter?\",\n \"Note: you may want to use a secondary account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"enabled\", $$v)\n },\n expression: \"notifiers.twitter.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.twitter.enabled,\n expression: \"notifiers.twitter.enabled\"\n }\n ],\n attrs: { id: \"content-use-twitter\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"twitter_notify_onsnatch\",\n explanations: [\n \"send an SMS when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.twitter.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"twitter_notify_ondownload\",\n explanations: [\n \"send an SMS when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"twitter_notify_onsubtitledownload\",\n explanations: [\n \"send an SMS when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.twitter\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.twitter.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Send direct message\",\n id: \"twitter_usedm\",\n explanations: [\n \"send a notification via Direct Message, not via status update\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.directMessage,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.twitter,\n \"directMessage\",\n $$v\n )\n },\n expression: \"notifiers.twitter.directMessage\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Send DM to\",\n id: \"twitter_dmto\",\n explanations: [\n \"Twitter account to send Direct Messages to (must follow you)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.twitter.dmto,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.twitter, \"dmto\", $$v)\n },\n expression: \"notifiers.twitter.dmto\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep1\",\n label: \"Step 1\"\n }\n },\n [\n _c(\n \"span\",\n { staticStyle: { \"font-size\": \"11px\" } },\n [\n _vm._v(\n 'Click the \"Request Authorization\" button. '\n ),\n _c(\"br\"),\n _vm._v(\n \"This will open a new page containing an auth key. \"\n ),\n _c(\"br\"),\n _vm._v(\n \"Note: if nothing happens check your popup blocker.\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Request Authorization\",\n id: \"twitter-step-1\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep1($event)\n }\n }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"twitterStep2\",\n label: \"Step 2\"\n }\n },\n [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.twitterKey,\n expression: \"twitterKey\"\n }\n ],\n staticClass:\n \"form-control input-sm max-input350\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n id: \"twitter_key\",\n placeholder:\n \"Enter the key Twitter gave you, and click 'Verify Key'\"\n },\n domProps: { value: _vm.twitterKey },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.twitterKey = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa btn-inline\",\n attrs: {\n type: \"button\",\n value: \"Verify Key\",\n id: \"twitter-step-2\"\n },\n on: {\n click: function($event) {\n return _vm.twitterStep2($event)\n }\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", {\n staticClass: \"testNotification\",\n attrs: { id: \"testTwitter-result\" },\n domProps: {\n innerHTML: _vm._s(_vm.twitterTestInfo)\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Twitter\",\n id: \"testTwitter\"\n },\n on: { click: _vm.twitterTest }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-trakt\",\n attrs: { title: \"Trakt\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://trakt.tv/\" } },\n [_vm._v(\"Trakt\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"trakt helps keep a record of what TV shows and movies you are watching. Based on your favorites, trakt recommends additional shows and movies you'll enjoy!\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_trakt\",\n explanations: [\"Send Trakt.tv notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"enabled\", $$v)\n },\n expression: \"notifiers.trakt.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.enabled,\n expression: \"notifiers.trakt.enabled\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-textbox\", {\n attrs: {\n label: \"Username\",\n id: \"trakt_username\",\n explanations: [\n \"username of your Trakt account.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.trakt.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_pin\",\n label: \"Trakt PIN\"\n }\n },\n [\n _c(\"input\", {\n staticClass:\n \"form-control input-sm max-input250\",\n staticStyle: { display: \"inline\" },\n attrs: {\n type: \"text\",\n name: \"trakt_pin\",\n id: \"trakt_pin\",\n value: \"\",\n disabled: _vm.notifiers.trakt.accessToken\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: _vm.traktNewTokenMessage,\n id: \"TraktGetPin\"\n },\n on: { click: _vm.TraktGetPin }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa hide\",\n attrs: {\n type: \"button\",\n value: \"Authorize Medusa\",\n id: \"authTrakt\"\n },\n on: { click: _vm.authTrakt }\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"PIN code to authorize Medusa to access Trakt on your behalf.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n label: \"API Timeout\",\n id: \"trakt_timeout\",\n explanations: [\n \"Seconds to wait for Trakt API to respond. (Use 0 to wait forever)\"\n ]\n },\n model: {\n value: _vm.notifiers.trakt.timeout,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"timeout\",\n $$v\n )\n },\n expression: \"notifiers.trakt.timeout\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Default indexer\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.defaultIndexer,\n expression:\n \"notifiers.trakt.defaultIndexer\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_default_indexer\",\n name: \"trakt_default_indexer\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"defaultIndexer\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktIndexersOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync libraries\",\n id: \"trakt_sync\",\n explanations: [\n \"Sync your Medusa show library with your Trakt collection.\",\n \"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\",\n \"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.sync,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.trakt, \"sync\", $$v)\n },\n expression: \"notifiers.trakt.sync\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.sync,\n expression: \"notifiers.trakt.sync\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove Episodes From Collection\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"Remove an Episode from your Trakt Collection if it is not in your Medusa Library.\",\n \"Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Sync watchlist\",\n id: \"trakt_sync_watchlist\",\n explanations: [\n \"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\",\n \"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\",\n \"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.syncWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"syncWatchlist\",\n $$v\n )\n },\n expression: \"notifiers.trakt.syncWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.trakt.syncWatchlist,\n expression:\n \"notifiers.trakt.syncWatchlist\"\n }\n ],\n attrs: { id: \"content-use-trakt-client\" }\n },\n [\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"trakt_default_indexer\",\n label: \"Watchlist add method\"\n }\n },\n [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value:\n _vm.notifiers.trakt.methodAdd,\n expression:\n \"notifiers.trakt.methodAdd\"\n }\n ],\n staticClass: \"form-control\",\n attrs: {\n id: \"trakt_method_add\",\n name: \"trakt_method_add\"\n },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call(\n $event.target.options,\n function(o) {\n return o.selected\n }\n )\n .map(function(o) {\n var val =\n \"_value\" in o\n ? o._value\n : o.value\n return val\n })\n _vm.$set(\n _vm.notifiers.trakt,\n \"methodAdd\",\n $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n )\n }\n }\n },\n _vm._l(_vm.traktMethodOptions, function(\n option\n ) {\n return _c(\n \"option\",\n {\n key: option.key,\n domProps: { value: option.value }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(option.text) +\n \"\\n \"\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"method in which to download episodes for new shows.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove episode\",\n id: \"trakt_remove_watchlist\",\n explanations: [\n \"remove an episode from your watchlist after it's downloaded.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeWatchlist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeWatchlist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeWatchlist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove series\",\n id: \"trakt_remove_serieslist\",\n explanations: [\n \"remove the whole series from your watchlist after any download.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt.removeSerieslist,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeSerieslist\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeSerieslist\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Remove watched show\",\n id: \"trakt_remove_show_from_application\",\n explanations: [\n \"remove the show from Medusa if it's ended and completely watched\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.trakt\n .removeShowFromApplication,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"removeShowFromApplication\",\n $$v\n )\n },\n expression:\n \"notifiers.trakt.removeShowFromApplication\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Start paused\",\n id: \"trakt_start_paused\",\n explanations: [\n \"shows grabbed from your trakt watchlist start paused.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.startPaused,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"startPaused\",\n $$v\n )\n },\n expression: \"notifiers.trakt.startPaused\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Trakt blackList name\",\n id: \"trakt_blacklist_name\",\n explanations: [\n \"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.trakt.blacklistName,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.trakt,\n \"blacklistName\",\n $$v\n )\n },\n expression: \"notifiers.trakt.blacklistName\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testTrakt-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Trakt\",\n id: \"testTrakt\"\n },\n on: { click: _vm.testTrakt }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Force Sync\",\n id: \"forceSync\"\n },\n on: { click: _vm.traktForceSync }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", id: \"trakt_pin_url\" },\n domProps: { value: _vm.notifiers.trakt.pinUrl }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-email\",\n attrs: { title: \"Email\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://en.wikipedia.org/wiki/Comparison_of_webmail_providers\"\n }\n },\n [_vm._v(\"Email\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"Allows configuration of email notifications on a per show basis.\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_email\",\n explanations: [\"Send email notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"enabled\", $$v)\n },\n expression: \"notifiers.email.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.email.enabled,\n expression: \"notifiers.email.enabled\"\n }\n ],\n attrs: { id: \"content-use-email\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"email_notify_onsnatch\",\n explanations: [\n \"Send a message when a download starts??\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"email_notify_ondownload\",\n explanations: [\n \"send a message when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.email.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"email_notify_onsubtitledownload\",\n explanations: [\n \"send a message when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.email\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.email.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP host\",\n id: \"email_host\",\n explanations: [\n \"hostname of your SMTP email server.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.host,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"host\", $$v)\n },\n expression: \"notifiers.email.host\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox-number\", {\n attrs: {\n min: 1,\n step: 1,\n label: \"SMTP port\",\n id: \"email_port\",\n explanations: [\n \"port number used to connect to your SMTP host.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.port,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"port\", $$v)\n },\n expression: \"notifiers.email.port\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP from\",\n id: \"email_from\",\n explanations: [\n \"sender email address, some hosts require a real address.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.from,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"from\", $$v)\n },\n expression: \"notifiers.email.from\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Use TLS\",\n id: \"email_tls\",\n explanations: [\"check to use TLS encryption.\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.tls,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.email, \"tls\", $$v)\n },\n expression: \"notifiers.email.tls\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"SMTP username\",\n id: \"email_username\",\n explanations: [\n \"(optional) your SMTP server username.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.username,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"username\",\n $$v\n )\n },\n expression: \"notifiers.email.username\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n type: \"password\",\n label: \"SMTP password\",\n id: \"email_password\",\n explanations: [\n \"(optional) your SMTP server password.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.password,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"password\",\n $$v\n )\n },\n expression: \"notifiers.email.password\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_list\",\n label: \"Global email list\"\n }\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.notifiers.email.addressList\n },\n on: { change: _vm.emailUpdateAddressList }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"config-textbox\", {\n attrs: {\n label: \"Email Subject\",\n id: \"email_subject\",\n explanations: [\n \"Use a custom subject for some privacy protection?\",\n \"(Leave blank for the default Medusa subject)\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.email.subject,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.email,\n \"subject\",\n $$v\n )\n },\n expression: \"notifiers.email.subject\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-template\",\n {\n attrs: {\n \"label-for\": \"email_show\",\n label: \"Show notification list\"\n }\n },\n [\n _c(\"show-selector\", {\n attrs: {\n \"select-class\":\n \"form-control input-sm max-input350\",\n placeholder: \"-- Select a Show --\"\n },\n on: {\n change: function($event) {\n return _vm.emailUpdateShowEmail($event)\n }\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n {\n staticClass:\n \"offset-sm-2 col-sm-offset-2 col-sm-10 content\"\n },\n [\n _c(\"select-list\", {\n attrs: {\n name: \"email_list\",\n id: \"email_list\",\n \"list-items\":\n _vm.emailSelectedShowAdresses\n },\n on: {\n change: function($event) {\n return _vm.savePerShowNotifyList(\n \"email\",\n $event\n )\n }\n }\n }),\n _vm._v(\n \"\\n Email addresses listed here, will receive notifications for \"\n ),\n _c(\"b\", [_vm._v(\"all\")]),\n _vm._v(\" shows.\"),\n _c(\"br\"),\n _vm._v(\n \"\\n (This field may be blank except when testing.)\\n \"\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testEmail-result\" }\n },\n [_vm._v(\"Click below to test.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Email\",\n id: \"testEmail\"\n },\n on: { click: _vm.testEmail }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa config_submitter\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row component-group\" }, [\n _c(\n \"div\",\n {\n staticClass: \"component-group-desc col-xs-12 col-md-2\"\n },\n [\n _c(\"span\", {\n staticClass: \"icon-notifiers-slack\",\n attrs: { title: \"Slack\" }\n }),\n _vm._v(\" \"),\n _c(\n \"h3\",\n [\n _c(\n \"app-link\",\n { attrs: { href: \"https://slack.com\" } },\n [_vm._v(\"Slack\")]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"p\", [_vm._v(\"Slack is a messaging app for teams.\")])\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-xs-12 col-md-10\" }, [\n _c(\n \"fieldset\",\n { staticClass: \"component-group-list\" },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Enable\",\n id: \"use_slack_client\",\n explanations: [\"Send Slack notifications?\"]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.enabled,\n callback: function($$v) {\n _vm.$set(_vm.notifiers.slack, \"enabled\", $$v)\n },\n expression: \"notifiers.slack.enabled\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.notifiers.slack.enabled,\n expression: \"notifiers.slack.enabled\"\n }\n ],\n attrs: { id: \"content-use-slack-client\" }\n },\n [\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on snatch\",\n id: \"slack_notify_onsnatch\",\n explanations: [\n \"send a notification when a download starts?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnSnatch,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSnatch\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnSnatch\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on download\",\n id: \"slack_notify_ondownload\",\n explanations: [\n \"send a notification when a download finishes?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.notifyOnDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnDownload\",\n $$v\n )\n },\n expression: \"notifiers.slack.notifyOnDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\"config-toggle-slider\", {\n attrs: {\n label: \"Notify on subtitle download\",\n id: \"slack_notify_onsubtitledownload\",\n explanations: [\n \"send a notification when subtitles are downloaded?\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value:\n _vm.notifiers.slack\n .notifyOnSubtitleDownload,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"notifyOnSubtitleDownload\",\n $$v\n )\n },\n expression:\n \"notifiers.slack.notifyOnSubtitleDownload\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"config-textbox\",\n {\n attrs: {\n label: \"Slack Incoming Webhook\",\n id: \"slack_webhook\",\n explanations: [\n \"Create an incoming webhook, to communicate with your slack channel.\"\n ]\n },\n on: {\n change: function($event) {\n return _vm.save()\n }\n },\n model: {\n value: _vm.notifiers.slack.webhook,\n callback: function($$v) {\n _vm.$set(\n _vm.notifiers.slack,\n \"webhook\",\n $$v\n )\n },\n expression: \"notifiers.slack.webhook\"\n }\n },\n [\n _c(\n \"app-link\",\n {\n attrs: {\n href:\n \"https://my.slack.com/services/new/incoming-webhook\"\n }\n },\n [\n _vm._v(\n \"https://my.slack.com/services/new/incoming-webhook/\"\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"testNotification\",\n attrs: { id: \"testSlack-result\" }\n },\n [_vm._v(\"Click below to test your settings.\")]\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"btn-medusa\",\n attrs: {\n type: \"button\",\n value: \"Test Slack\",\n id: \"testSlack\"\n },\n on: { click: _vm.testSlack }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"config_submitter btn-medusa\",\n attrs: { type: \"submit\", value: \"Save Changes\" }\n }),\n _vm._v(\" \"),\n _c(\"br\")\n ])\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"clearfix\" })\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"label\",\n { staticClass: \"col-sm-2 control-label\", attrs: { for: \"kodi_host\" } },\n [_c(\"span\", [_vm._v(\"KODI IP:Port\")])]\n )\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"clear-left\" }, [\n _c(\"p\", [\n _c(\"b\", [_vm._v(\"Note:\")]),\n _vm._v(\" some Plex Home Theaters \"),\n _c(\"b\", { staticClass: \"boldest\" }, [_vm._v(\"do not\")]),\n _vm._v(\" support notifications e.g. Plexapp for Samsung TVs\")\n ])\n ])\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/config-notifications.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }),