SickGear/gui/slick/js/configNotifications.js

872 lines
30 KiB
JavaScript
Raw Normal View History

/** @namespace JSONData.account_id */
/** @namespace JSONData.account_name */
/** @namespace JSONData.error_message */
/** @namespace JSONData.num_accounts */
/** @namespace JSONData.chatid */
$(document).ready(function(){
var loading = '<img src="' + sbRoot + '/images/loading16' + themeSpinner + '.gif" height="16" width="16" />';
$('#test-growl').click(function () {
var growlHost = $.trim($('#growl-host').val());
if (!growlHost) {
$('#test-growl-result').html('Please fill out the necessary fields above.');
$('#growl-host').addClass('warning');
return;
}
$('#growl-host').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-growl-result').html(loading);
$.get(sbRoot + '/home/test-growl',
{host: growlHost})
.done(function (data) {
$('#test-growl-result').html(data);
$('#test-growl').prop('disabled', !1);
});
});
$('#test-prowl').click(function () {
var prowlApi = $.trim($('#prowl-api').val());
var prowlPriority = $('#prowl-priority').val();
if (!prowlApi) {
$('#test-prowl-result').html('Please fill out the necessary fields above.');
$('#prowl-api').addClass('warning');
return;
}
$('#prowl-api').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-prowl-result').html(loading);
$.get(sbRoot + '/home/test-prowl',
{prowl_api: prowlApi, prowl_priority: prowlPriority})
.done(function (data) {
$('#test-prowl-result').html(data);
$('#test-prowl').prop('disabled', !1);
});
});
$('#discover-emby').click(function () {
$(this).prop('disabled', !0);
$('#emby-host,#emby-apikey').removeClass('warning');
$('#test-emby-result').html(loading);
$.get(sbRoot + '/home/discover-emby')
.done(function (data) {
var result = 'Unable to discover a server, is one running?';
if ('' !== data) {
$('#emby-host').val(data);
result = 'Server found.';
}
$('#test-emby-result').html(result);
$('#discover-emby').prop('disabled', !1);
});
});
$('#test-emby').click(function () {
var host$ = $('#emby-host'), host = $.trim(host$.val());
var apikey$ = $('#emby-apikey'), apikey = $.trim(apikey$.val());
if (!host || !apikey) {
$('#test-emby-result').html('Please fill out the necessary fields above.');
if (!host) {
host$.addClass('warning');
} else {
host$.removeClass('warning');
}
if (!apikey) {
apikey$.addClass('warning');
} else {
apikey$.removeClass('warning');
}
return;
}
$('#emby-host,#emby-apikey').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-emby-result').html(loading);
$.get(sbRoot + '/home/test-emby',
{host: host, apikey: apikey})
.done(function (data) {
$('#test-emby-result').html(data);
$('#test-emby').prop('disabled', !1);
});
});
$('#test-kodi').click(function () {
var kodiHost = $.trim($('#kodi-host').val());
var kodiUsername = $.trim($('#kodi-username').val());
var kodiPassword = $.trim($('#kodi-password').val());
if (!kodiHost) {
$('#test-kodi-result').html('Please fill out the necessary fields above.');
$('#kodi-host').addClass('warning');
return;
}
$('#kodi-host').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-kodi-result').html(loading);
$.get(sbRoot + '/home/test-kodi',
{host: kodiHost, username: kodiUsername, password: kodiPassword})
.done(function (data) {
$('#test-kodi-result').html(data);
$('#test-kodi').prop('disabled', !1);
});
});
$('#test-xbmc').click(function () {
var xbmcHost = $.trim($('#xbmc-host').val());
var xbmcUsername = $.trim($('#xbmc-username').val());
var xbmcPassword = $.trim($('#xbmc-password').val());
if (!xbmcHost) {
$('#test-xbmc-result').html('Please fill out the necessary fields above.');
$('#xbmc-host').addClass('warning');
return;
}
$('#xbmc-host').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-xbmc-result').html(loading);
$.get(sbRoot + '/home/test-xbmc',
{host: xbmcHost, username: xbmcUsername, password: xbmcPassword})
.done(function (data) {
$('#test-xbmc-result').html(data);
$('#test-xbmc').prop('disabled', !1);
});
});
// show instructions for plex when enabled
$('#use-plex').click(function() {
if ( $(this).is(':checked') ) {
$('.plexinfo').removeClass('hide');
} else {
$('.plexinfo').addClass('hide');
}
});
if ($('input[id="use-plex"]').is(':checked')) {$('.plexinfo').removeClass('hide')}
$('#test-pmc').click(function () {
var plexHost = $.trim($('#plex-host').val());
var plexUsername = $.trim($('#plex-username').val());
var plexPassword = $.trim($('#plex-password').val());
if (!plexHost) {
$('#test-pmc-result').html('Please fill out the necessary fields above.');
$('#plex-host').addClass('warning');
return;
}
$('#plex-host').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-pmc-result').html(loading);
$.get(sbRoot + '/home/test-plex',
{host: plexHost, username: plexUsername, password: plexPassword})
.done(function (data) {
$('#test-pmc-result').html(data);
$('#test-pmc').prop('disabled', !1);
});
});
$('#test-pms').click(function () {
var plexServerHost = $.trim($('#plex-server-host').val());
var plexUsername = $.trim($('#plex-username').val());
var plexPassword = $.trim($('#plex-password').val());
if (!plexServerHost) {
$('#test-pms-result').html('Please fill out the necessary fields above.');
$('#plex-server-host').addClass('warning');
return;
}
$('#plex-server-host').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-pms-result').html(loading);
$.get(sbRoot + '/home/test-plex',
{host: plexServerHost, username: plexUsername, password: plexPassword, server: !0})
.done(function (data) {
$('#test-pms-result').html(data);
$('#test-pms').prop('disabled', !1);
});
});
$('#test-boxcar2').click(function () {
var boxcarAccesstoken = $.trim($('#boxcar2-access-token').val());
var boxcarSound = $('#boxcar2-sound').val() || 'default';
if (!boxcarAccesstoken) {
$('#test-boxcar2-result').html('Please fill out the necessary fields above.');
$('#boxcar2-access-token').addClass('warning');
return;
}
$('#boxcar2-access-token').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-boxcar2-result').html(loading);
$.get(sbRoot + '/home/test-boxcar2',
{access_token: boxcarAccesstoken, sound: boxcarSound})
.done(function (data) {
$('#test-boxcar2-result').html(data);
$('#test-boxcar2').prop('disabled', !1);
});
});
$('#test-pushover').click(function () {
var pushover$ = $('#pushover-userkey'), pushoverUserkey = $.trim(pushover$.val()),
pushoverApikey$ = $('#pushover-apikey'), pushoverApikey = $.trim(pushoverApikey$.val()),
pushoverPriority = $('#pushover-priority').val(),
pushoverDevice = $('#pushover-device').val(),
pushoverSound = $('#pushover-sound').val(),
testResult$ = $('#test-pushover-result');
if (!pushoverUserkey || !pushoverApikey) {
testResult$.html('Please fill out the necessary fields above.');
if (!pushoverUserkey) {
pushover$.addClass('warning');
} else {
pushover$.removeClass('warning');
}
if (!pushoverApikey) {
pushoverApikey$.addClass('warning');
} else {
pushoverApikey$.removeClass('warning');
}
return;
}
$('#pushover-userkey,#pushover-apikey').removeClass('warning');
$(this).prop('disabled', !0);
testResult$.html(loading);
$.get(sbRoot + '/home/test-pushover',
{user_key: pushoverUserkey, api_key: pushoverApikey, priority: pushoverPriority,
device: pushoverDevice, sound: pushoverSound})
.done(function (data) {
testResult$.html(data);
$('#test-pushover').prop('disabled', !1);
});
});
function getPushoverDevices (msg) {
var pushoverUserkey = $.trim($('#pushover-userkey').val());
var pushoverApikey = $.trim($('#pushover-apikey').val());
if (!pushoverUserkey || !pushoverApikey) {
$('#test-pushover-result').html('Please fill out the necessary fields above.');
if (!pushoverUserkey) {
$('#pushover-userkey').addClass('warning');
} else {
$('#pushover-userkey').removeClass('warning');
}
if (!pushoverApikey) {
$('#pushover-apikey').addClass('warning');
} else {
$('#pushover-apikey').removeClass('warning');
}
return;
}
$(this).prop('disabled', !0);
if (msg) {
$('#test-pushover-result').html(loading);
}
var currentPushoverDevice = $('#pushover-device').val();
$.get(sbRoot + '/home/get-pushover-devices',
{user_key: pushoverUserkey, api_key: pushoverApikey})
.done(function (data) {
var devices = jQuery.parseJSON(data || '{}').devices;
$('#pushover-device-list').html('');
// add default option to send to all devices
$('#pushover-device-list').append('<option value="all" selected="selected">-- All Devices --</option>');
if (devices) {
for (var i = 0; i < devices.length; i++) {
// if a device in the list matches our current iden, select it
if (currentPushoverDevice === devices[i]) {
$('#pushover-device-list').append('<option value="' + devices[i] + '" selected="selected">' + devices[i] + '</option>');
} else {
$('#pushover-device-list').append('<option value="' + devices[i] + '">' + devices[i] + '</option>');
}
}
}
$('#get-pushoverDevices').prop('disabled', !1);
if (msg) {
$('#test-pushover-result').html(msg);
}
});
$('#pushover-device-list').change(function () {
$('#pushover-device').val($('#pushover-device-list').val());
$('#test-pushover-result').html('Don\'t forget to save your new Pushover settings.');
});
}
$('#get-pushoverDevices').click(function () {
getPushoverDevices('Device list updated. Select specific device to use.');
});
if ($('#use-pushover').prop('checked')) {
getPushoverDevices();
}
$('#test-libnotify').click(function() {
$('#test-libnotify-result').html(loading);
$.get(sbRoot + '/home/test-libnotify',
function (data) { $('#test-libnotify-result').html(data); });
});
$('#settings-nmj').click(function() {
if (!$('#nmj-host').val()) {
alert('Please fill in the Popcorn IP address');
$('#nmj-host').focus();
return;
}
$('#test-nmj-result').html(loading);
var nmjHost = $('#nmj-host').val();
$.get(sbRoot + '/home/settings-nmj',
{host: nmjHost},
function (data) {
if (null === data) {
$('#nmj-database').removeAttr('readonly');
$('#nmj-mount').removeAttr('readonly');
}
var JSONData = $.parseJSON(data);
$('#test-nmj-result').html(JSONData.message);
$('#nmj-database').val(JSONData.database);
$('#nmj-mount').val(JSONData.mount);
if (JSONData.database) {
$('#nmj-database').attr('readonly', !0);
} else {
$('#nmj-database').removeAttr('readonly');
}
if (JSONData.mount) {
$('#nmj-mount').attr('readonly', !0);
} else {
$('#nmj-mount').removeAttr('readonly');
}
});
});
$('#test-nmj').click(function () {
var nmjHost = $.trim($('#nmj-host').val());
var nmjDatabase = $('#nmj-database').val();
var nmjMount = $('#nmj-mount').val();
if (!nmjHost) {
$('#test-nmj-result').html('Please fill out the necessary fields above.');
$('#nmj-host').addClass('warning');
return;
}
$('#nmj-host').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-nmj-result').html(loading);
$.get(sbRoot + '/home/test-nmj',
{host: nmjHost, database: nmjDatabase, mount: nmjMount})
.done(function (data) {
$('#test-nmj-result').html(data);
$('#test-nmj').prop('disabled', !1);
});
});
$('#settings-nmjv2').click(function() {
if (!$('#nmjv2-host').val()) {
alert('Please fill in the Popcorn IP address');
$('#nmjv2-host').focus();
return;
}
$('#test-nmjv2-result').html(loading);
var nmjv2Host = $('#nmjv2-host').val();
var nmjv2Dbloc;
var radios = document.getElementsByName('nmjv2_dbloc');
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
nmjv2Dbloc=radios[i].value;
break;
}
}
var nmjv2Dbinstance=$('#NMJv2db-instance').val();
$.get(sbRoot + '/home/settings-nmj2',
{host: nmjv2Host,dbloc: nmjv2Dbloc,instance: nmjv2Dbinstance},
function (data){
if (null === data) {
$('#nmjv2-database').removeAttr('readonly');
}
var JSONData = $.parseJSON(data);
$('#test-nmjv2-result').html(JSONData.message);
$('#nmjv2-database').val(JSONData.database);
if (JSONData.database)
$('#nmjv2-database').attr('readonly', !0);
else
$('#nmjv2-database').removeAttr('readonly');
});
});
$('#test-nmjv2').click(function () {
var nmjv2Host = $.trim($('#nmjv2-host').val());
if (!nmjv2Host) {
$('#test-nmjv2-result').html('Please fill out the necessary fields above.');
$('#nmjv2-host').addClass('warning');
return;
}
$('#nmjv2-host').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-nmjv2-result').html(loading);
$.get(sbRoot + '/home/test-nmj2',
{host: nmjv2Host})
.done(function (data) {
$('#test-nmjv2-result').html(data);
$('#test-nmjv2').prop('disabled', !1);
});
});
$('#test-pushalot').click(function () {
var pushalotAuthorizationtoken = $.trim($('#pushalot-authorizationtoken').val());
if (!pushalotAuthorizationtoken) {
$('#test-pushalot-result').html('Please fill out the necessary fields above.');
$('#pushalot-authorizationtoken').addClass('warning');
return;
}
$('#pushalot-authorizationtoken').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-pushalot-result').html(loading);
$.get(sbRoot + '/home/test-pushalot',
{authorization_token: pushalotAuthorizationtoken})
.done(function (data) {
$('#test-pushalot-result').html(data);
$('#test-pushalot').prop('disabled', !1);
});
});
$('#test-pushbullet').click(function () {
var pushbulletAccessToken = $.trim($('#pushbullet-access-token').val());
var pushbulletDeviceIden = $('#pushbullet-device-iden').val();
if (!pushbulletAccessToken) {
$('#test-pushbullet-result').html('Please fill out the necessary fields above.');
$('#pushbullet-access-token').addClass('warning');
return;
}
$('#pushbullet-access-token').removeClass('warning');
$(this).prop('disabled', !0);
$('#test-pushbullet-result').html(loading);
$.get(sbRoot + '/home/test-pushbullet',
{access_token: pushbulletAccessToken, device_iden: pushbulletDeviceIden})
.done(function (data) {
$('#test-pushbullet-result').html(data);
$('#test-pushbullet').prop('disabled', !1);
});
});
$('#test-slack').click(function () {
var channel = '#slack-channel', slackChannel = $(channel).val(),
slackAsAuthed = $('#slack-as-authed').prop('checked'),
slackBotName = $('#slack-bot-name').val(), slackIconUrl = $('#slack-icon-url').val(),
accessToken = '#slack-access-token', slackAccessToken = $(accessToken).val();
$(channel + ', ' + accessToken).removeClass('warning');
if (!slackChannel || !slackAccessToken) {
$('#test-slack-result').html('Please fill out the necessary fields above.');
if (!slackChannel)
$(channel).addClass('warning');
if (!slackAccessToken)
$(accessToken).addClass('warning');
} else {
$(this).prop('disabled', !0);
$('#test-slack-result').html(loading);
$.get(sbRoot + '/home/test-slack',
{channel: slackChannel, as_authed: slackAsAuthed, bot_name: slackBotName,
icon_url: slackIconUrl, access_token: slackAccessToken})
.done(function (data) {
$('#test-slack-result').html(data);
$('#test-slack').prop('disabled', !1);
});
}
});
$('#test-discord').click(function () {
var discordAsAuthed = $('#discord-as-authed').prop('checked'),
discordUsername = $('#discord-username').val(), discordIconUrl = $('#discord-icon-url').val(),
discordAsTts = $('#discord-as-tts').prop('checked'),
accessToken = '#discord-access-token', discordAccessToken = $(accessToken).val();
$(accessToken).removeClass('warning');
if (!discordAccessToken) {
$('#test-discord-result').html('Please fill out the necessary fields above.');
if (!discordAccessToken)
$(accessToken).addClass('warning');
} else {
$(this).prop('disabled', !0);
$('#test-discord-result').html(loading);
$.get(sbRoot + '/home/test-discord',
{as_authed: discordAsAuthed, username: discordUsername, icon_url: discordIconUrl,
as_tts: discordAsTts, access_token: discordAccessToken})
.done(function (data) {
$('#test-discord-result').html(data);
$('#test-discord').prop('disabled', !1);
});
}
});
$('#test-gitter').click(function () {
var gitterRoom = $('#gitter-room').val(),
accessToken = '#gitter-access-token', gitterAccessToken = $(accessToken).val();
$(accessToken).removeClass('warning');
if (!gitterAccessToken) {
$('#test-gitter-result').html('Please fill out the necessary fields above.');
if (!gitterAccessToken)
$(accessToken).addClass('warning');
} else {
$(this).prop('disabled', !0);
$('#test-gitter-result').html(loading);
$.get(sbRoot + '/home/test-gitter',
{room_name: gitterRoom, access_token: gitterAccessToken})
.done(function (data) {
$('#test-gitter-result').html(data);
$('#test-gitter').prop('disabled', !1);
});
}
});
$('#test-telegram').click(function () {
var telegramSendImage = $('#telegram-send-image').prop('checked'),
telegramQuiet = $('#telegram-quiet').prop('checked'),
accessToken = '#telegram-access-token', telegramAccessToken = $(accessToken).val().replace(/\s/g, ''),
chatid = '#telegram-chatid', telegramChatid = $(chatid).val().replace(/\s/g, '');
$(accessToken + ', ' + chatid).removeClass('warning');
if (!telegramAccessToken) {
$('#test-telegram-result').html('Please fill out the necessary fields above.');
$(accessToken).addClass('warning');
} else {
$(this).prop('disabled', !0);
$('#test-telegram-result').html(loading);
$.getJSON(sbRoot + '/home/test-telegram',
{send_icon: telegramSendImage, access_token: telegramAccessToken, chatid: telegramChatid, quiet: telegramQuiet})
.done(function (JSONdata) {
$('#test-telegram-result').html(JSONdata.result);
if ('' === telegramChatid) {
if ('' === JSONdata.chatid) {
$(chatid).addClass('warning');
} else {
$(chatid).val(JSONdata.chatid);
}
}
$('#test-telegram').prop('disabled', !1);
});
}
});
$('.config_submitter').click(function (e) {
if ($('#use-telegram').prop('checked')){
var chatid$ = $('#telegram-chatid');
if ('' === chatid$.val().replace(/\s/g, '')){
chatid$.addClass('warning');
alert('Cannot save, Telegram is enabled and the chat id field needs attention');
e.preventDefault();
return !1;
} else {
chatid$.removeClass('warning');
}
}
});
function getPushbulletDevices (msg) {
var pushbulletAccessToken = $.trim($('#pushbullet-access-token').val());
if (!pushbulletAccessToken) {
$('#test-pushbullet-result').html('Please fill out the necessary fields above.');
$('#pushbullet-access-token').addClass('warning');
return;
}
$(this).prop('disabled', !0);
if (msg) {
$('#test-pushbullet-result').html(loading);
}
var currentPushbulletDevice = $('#pushbullet-device-iden').val();
$.get(sbRoot + '/home/get-pushbullet-devices',
{access_token: pushbulletAccessToken})
.done(function (data) {
var devices = jQuery.parseJSON(data || '{}').devices;
var error = jQuery.parseJSON(data || '{}').error;
$('#pushbullet-device-list').html('');
if (devices) {
// add default option to send to all devices
$('#pushbullet-device-list').append('<option value="" selected="selected">-- All Devices --</option>');
for (var i = 0; i < devices.length; i++) {
// only list active device targets
if (!0 === devices[i].active) {
// if a device in the list matches our current iden, select it
if (currentPushbulletDevice === devices[i].iden) {
$('#pushbullet-device-list').append('<option value="' + devices[i].iden + '" selected="selected">' + devices[i].manufacturer + ' ' + devices[i].nickname + '</option>');
} else {
$('#pushbullet-device-list').append('<option value="' + devices[i].iden + '">' + devices[i].manufacturer + ' ' + devices[i].nickname + '</option>');
}
}
}
}
$('#get-pushbulletDevices').prop('disabled', !1);
if (msg) {
if (error.message) {
$('#test-pushbullet-result').html(error.message);
} else {
$('#test-pushbullet-result').html(msg);
}
}
});
$('#pushbullet-device-list').change(function () {
$('#pushbullet-device-iden').val($('#pushbullet-device-list').val());
$('#test-pushbullet-result').html('Don\'t forget to save your new Pushbullet settings.');
});
}
$('#get-pushbulletDevices').click(function () {
getPushbulletDevices('Device list updated. Select specific device to use.');
});
if ($('#use-pushbullet').prop('checked')) {
getPushbulletDevices();
}
var elTraktAuth = $('#trakt-authenticate'), elTraktAuthResult = $('#trakt-authentication-result');
function traktSendAuth(){
var elAccountSelect = $('#trakt-accounts'), strCurAccountId = elAccountSelect.find('option:selected').val(),
elTraktPin = $('#trakt-pin'), strPin = $.trim(elTraktPin.val());
elTraktAuthResult.html(loading);
$.get(sbRoot + '/home/trakt-authenticate',
{pin: strPin, account: strCurAccountId})
.done(function(data) {
elTraktAuth.prop('disabled', !1);
elTraktPin.val('');
var JSONData = $.parseJSON(data);
elTraktAuthResult.html('Success' === JSONData.result
? JSONData.result + ' account: ' + JSONData.account_name
: JSONData.result + ' ' + JSONData.error_message);
if ('Success' === JSONData.result) {
var elUpdateRows = $('#trakt-collection').find('tr');
if ('new' === strCurAccountId) {
elAccountSelect.append($('<option>', {value: JSONData.account_id, text: JSONData.account_id + ' - ' + JSONData.account_name + ' (ok)'}));
if ('Connect New Pin' === elUpdateRows.eq(0).find('th').last().text()) {
elUpdateRows.eq(0).find('th').last().html('Account');
elUpdateRows.eq(1).find('th').last().html(JSONData.account_name);
elUpdateRows.eq(1).find('th').last().addClass('tid-' + JSONData.account_id);
elUpdateRows.has('td').each(function(nRow) {
var elCells = $(this).find('td');
if (!(nRow % 2)) {
var IdLoc = 'update-trakt-' + JSONData.account_id + '-' + elCells.eq(0).find('span').attr('data-loc');
elCells.last().html('<input type="checkbox" id="' + IdLoc + '" name="' + IdLoc + '">');
} else {
elCells.attr('colspan', 1);
}
});
}
else
{
elUpdateRows.eq(0).find('th').last().html('Trakt accounts');
elUpdateRows.eq(0).find('th').last().attr('colspan', 1 + parseInt(elUpdateRows.eq(0).find('th').last().attr('colspan'), 10));
elUpdateRows.eq(1).find('th').last().after('<th>' + JSONData.account_name + '</th>');
elUpdateRows.eq(1).find('th').last().addClass('tid-' + JSONData.account_id);
elUpdateRows.has('td').each(function(nRow) {
var elCells = $(this).find('td');
if (!(nRow % 2)) {
var IdLoc = 'update-trakt-' + JSONData.account_id + '-' + elCells.eq(0).find('span').attr('data-loc');
elCells.last().after('<td class="opt"><input type="checkbox" id="' + IdLoc + '" name="' + IdLoc + '"></td>');
} else {
elCells.attr('colspan', 1 + parseInt(elCells.attr('colspan'), 10));
}
});
}
}
else
{
elAccountSelect.find('option[value=' + strCurAccountId + ']').html(JSONData.account_id + ' - ' + JSONData.account_name + ' (ok)');
elUpdateRows.eq(1).find('th[class*="tid-' + JSONData.account_id + '"]').text(JSONData.account_name);
}
}
});
}
elTraktAuth.click(function(e) {
var elTraktPin = $('#trakt-pin');
elTraktPin.removeClass('warning');
if (!$.trim(elTraktPin.val())) {
elTraktPin.addClass('warning');
elTraktAuthResult.html('Please enter a required PIN above.');
} else {
var elAccountSelect = $('#trakt-accounts'), elSelected = elAccountSelect.find('option:selected');
$(this).prop('disabled', !0);
if ('new' !== elSelected.val()) {
$.confirm({
'title' : 'Replace Trakt Account',
'message' : 'Are you sure you want to replace <span class="footerhighlight">' + elSelected.text() + '</span> ?<br /><br />',
'buttons' : {
'Yes' : {
'class' : 'green',
'action': function() {
traktSendAuth();
}
},
'No' : {
'class' : 'red',
'action': function() {
e.preventDefault();
elTraktAuth.prop('disabled', !1);
}
}
}
});
}
else
{
traktSendAuth();
}
}
});
$('#trakt-accounts').change(function() {
$('#trakt-delete').prop('disabled', 'new' === $('#trakt-accounts').val());
});
$('#trakt-delete').click(function(e) {
var elAccountSelect = $('#trakt-accounts'), elSelected = elAccountSelect.find('option:selected'), that = $(this);
that.prop('disabled', !0);
$.confirm({
'title' : 'Remove Trakt Account',
'message' : 'Are you sure you want to remove <span class="footerhighlight">' + elSelected.text() + '</span> ?<br /><br />',
'buttons' : {
'Yes' : {
'class' : 'green',
'action': function() {
$.get(sbRoot + '/home/trakt-delete',
{accountid: elSelected.val()})
.done(function(data) {
that.prop('disabled', !1);
var JSONData = $.parseJSON(data);
if ('Success' === JSONData.result) {
var elCollection = $('#trakt-collection'), elUpdateRows = elCollection.find('tr'),
header = elCollection.find('th[class*="tid-' + JSONData.account_id + '"]'),
numAcc = parseInt(JSONData.num_accounts, 10);
elUpdateRows.eq(0).find('th').last().html(!numAcc && '<i>Connect New Pin</i>' ||
(1 < numAcc ? 'Trakt accounts' : 'Account'));
elUpdateRows.find('th[colspan]').attr('colspan', 1 < numAcc ? numAcc : 1);
!numAcc && header.html('..') || header.remove();
var elInputs = elUpdateRows.find('input[id*=update-trakt-' + JSONData.account_id + ']');
!numAcc && elInputs.parent().html('..') || elInputs.parent().remove();
elUpdateRows.find('td[colspan]').each(function() {
$(this).attr('colspan', (numAcc ? 1 + numAcc : 2))
});
elSelected.remove();
$('#trakt-accounts').change();
elTraktAuthResult.html('Deleted account: ' + JSONData.account_name);
}
});
}
},
'No' : {
'class' : 'red',
'action': function() {
e.preventDefault();
$('#trakt-accounts').change();
}
}
}
});
});
function loadShowNotifyLists() {
$.get(sbRoot + '/home/load-show-notify-lists', function (data) {
var list, html, item, len= 0, el;
list = $.parseJSON(data);
html = [];
for (item in list) {
for (var k in list[item]) {
if ($.isArray(list[item][k])) {
len += list[item][k].length;
html.push('\t<optgroup label="' + k + '">');
for (var show in list[item][k]) {
html.push('\t\t<option value="' + list[item][k][show].id + '"'
+ ' data="' + list[item][k][show].list + '"'
+ '>' + list[item][k][show].name + '</option>');
}
html.push('\t</optgroup>');
}
}
}
if (len) {
el = $('#email-show');
el.html('<option value="-1">-- Select show --</option>'
+ html.join('\n'));
$('#show-email-list').val('');
el.change(function () {
$('#show-email-list').val(
$(this).find('option[value="' + $(this).val() + '"]').attr('data'))
});
}
});
}
// Load the per show notify lists everytime this page is loaded
loadShowNotifyLists();
// Update the internal data struct anytime settings are saved to the server
$('#email-show').bind('notify', function () { loadShowNotifyLists(); });
$('#save-show-email').click(
function(){
var show = $('#email-show').val();
if ('-1' === show) {
$('#test-email-result').html('No show selected for save.');
return
}
$.post(sbRoot + '/home/save-show-email', {
_xsrf: Cookies.get('_xsrf'),
show: show,
emails: $('#show-email-list').val()},
function (data){
// Reload the per show notify lists to reflect changes
loadShowNotifyLists();
var result = $.parseJSON(data),
show = $('#email-show').find('option[value="' + result.id + '"]').text();
$('#test-email-result').html(result.success
? 'Success. Notify list updated for show "' + show + '". Click below to test.'
: 'Error saving notify list for show %s' % show);
});
});
$('#test-email').click(function () {
var status, host, port, tls, from, user, pwd, err, to;
status = $('#test-email-result');
status.html(loading);
host = $('#email-host').val();
host = host.length > 0 ? host : null;
port = $('#email-port').val();
port = port.length > 0 ? port : null;
tls = $('#email-tls').attr('checked') !== undefined ? 1 : 0;
from = $('#email-from').val();
from = from.length > 0 ? from : 'root@localhost';
user = $('#email-user').val().trim();
pwd = $('#email-password').val();
err = [];
if (null === host) {
err.push('SMTP server hostname');
}
if (null === port) {
err.push('SMTP server host port');
} else if (null === port.match(/^\d+$/) || parseInt(port, 10) > 65535) {
err.push('SMTP server host port must be between 0 and 65535');
}
if (0 < err.length) {
status.html('Required: ' + err.join(', '));
} else {
to = prompt('Enter an email address to send the test to:', '');
if (null === to || 0 === to.length || null === to.match(/.*@.*/)) {
status.html('Required: A valid address for email test');
} else {
$.get(sbRoot + '/home/test-email',
{host:host, port:port, smtp_from:from, use_tls:tls, user:user, pwd:pwd, to:to},
function(msg) {$('#test-email-result').html(msg);});
}
}
});
});