function toggle$(el, cond){ var ifId = '-if-' + $(el).attr('id'); if(cond){ $('.hide' + ifId).fadeOut('fast', 'linear'); $('.show' + ifId).fadeIn('fast', 'linear'); } else { $('.show' + ifId).fadeOut('fast', 'linear'); $('.hide' + ifId).fadeIn('fast', 'linear'); } } $(document).ready(function () { var enabler = $('.enabler'), viewIf = $('input.view-if'), viewIfSel = $('select.view-if'); enabler.each(function () { if (!$(this).prop('checked')) $('#content_' + $(this).attr('id')).hide(); }); enabler.click(function () { var content_id = $('#content_' + $(this).attr('id')); if ($(this).prop('checked')) content_id.fadeIn('fast', 'linear'); else content_id.fadeOut('fast', 'linear'); }); viewIf.each(function () { $(($(this).prop('checked') ? '.hide-if-' : '.show-if-') + $(this).attr('id')).hide(); }); viewIf.click(function () { toggle$(this, $(this).prop('checked')); }); viewIfSel.each(function () { $((0 < $(this).find('option:selected').val() ? '.hide-if-' : '.show-if-') + $(this).attr('id')).hide(); }); viewIfSel.change(function(){ toggle$(this, 0 < $(this).find('option:selected').val()); }); var idSelect = '#imdb-accounts', idDel = '#imdb-list-del', idInput = '#imdb-url', idOnOff = '#imdb-list-onoff', sel = 'selected', opt = 'option', selOpt = [opt, sel].join(':'), elDropDown = $(idSelect), elDel = $(idDel), elInput = $(idInput), elOnOff = $(idOnOff); function accId() {return elDropDown.find(selOpt).val();} function nameList() {return elDropDown.find(selOpt).text();} function isAdd() {return 'new' === accId();} function isOff() {return 0 == nameList().indexOf('(Off) ');} function warnMessage(msg) { elInput.addClass('warning').prop('title', msg); } function all(state) {$([idSelect, idDel, idInput, idOnOff].join()).prop('disabled', 'on' == state ? !1 : !0)} function setOnOff() {elOnOff.val(isAdd() || isOff() ? 'Enable' : 'Disable');} function setLink() { var idView = '#view-list', idLink = '#link-list'; return $([idView, idLink].join()).removeClass() && ((isAdd() || isOff()) && $(idLink).addClass('hide') || $(idView).addClass('hide')) && (!isOff() && $(idLink) .attr('href', sbRoot + '/home/addShows/watchlist_imdb?account=' + accId()) .attr('title', 'View ' + nameList())); } function defaultControls() { elDel.prop('disabled', isAdd()); elInput.removeClass('warning') .val(!isAdd() && accId() || '') .prop('title', isAdd() ? '' : 'Select Add. Use Delete or Disable') .prop('readonly', !isAdd()); setOnOff(); setLink(); } function populateSelect(jsonData) { /** @namespace response.accounts */ var response = $.parseJSON(jsonData); if ('Success' !== response.result) { warnMessage(response.result); return !1; } elDropDown.find(opt).slice(1).remove(); var i, l, accounts = response.accounts, options = elDropDown.get(0).options; for (i = 0, l = accounts.length; i < l; i = i + 2) { options[options.length] = new Option(accounts[i + 1] + (0 == accounts[i + 1].replace('(Off) ', '').toLowerCase().indexOf('your') ? '' : '\'s') + ' list', accounts[i]); if (0 <= $.trim(elInput.val()).indexOf(accounts[i])) { elDropDown.find(opt).prop(sel, !1); elDropDown.find('option[value="' + accounts[i] + '"]').prop(sel, sel); elInput.val(accounts[i]); elInput.prop('title', 'Select Add. Use Delete or Disable'); setOnOff(); } } return !0; } elDropDown.change(function() { defaultControls(); }); elDel.on('click', function(e) { all('off'); $.confirm({ 'title' : 'Remove the "' + nameList().replace('\'s', '').replace(' list', '') + '" IMDb Watchlist', 'message' : 'Are you sure you want to remove ' + nameList() + ' ?

', 'buttons' : { 'Yes' : { 'class' : 'green', 'action': function() { all('off'); $.get(sbRoot + '/home/addShows/watchlist_imdb', { 'action': elDel.val().toLowerCase(), 'select': accId()}) .done(function(response) { all('on'); setControls(!populateSelect(response), !1); setOnOff(); }) .fail(function() { all('on'); setControls(!0, 'Invalid ID'); setOnOff(); }); } }, 'No' : { 'class' : 'red', 'action': function() { e.preventDefault(); all('on'); defaultControls();} } } }); }); elOnOff.on('click', function(e) { var strList = $.trim(elInput.val()); elInput.removeClass('warning'); if (!strList) { warnMessage('Missing IMDb list Id or URL'); } else { all('off'); var params = {'action': elOnOff.val().toLowerCase()}; if ('enable' == params.action) params.input = strList; else params.select = accId(); $.get(sbRoot + '/home/addShows/watchlist_imdb', params) .done(function(data) { setControls(!populateSelect(data), !1); }) .fail(function() { setControls(!0, 'Failed to load list'); }); } }); function setControls(resetSelect, message) { all('on'); if (resetSelect) { if (message) warnMessage(message); var addList = '[value="new"]'; elDropDown.find(opt).not(addList).prop(sel, !1); elDropDown.find(opt + addList).prop(sel, sel); } elDel.prop('disabled', isAdd()); elInput.prop('readonly', !isAdd()); setLink() } var ui_update_trim_zero = (function () { var secs = ('00' + new Date().getSeconds().toString()).slice(-2), elSecs = $('#trim_info_seconds'), elTrimZero = $('#trim_zero'); elTrimZero.each(function () { var checked = $(this).prop('checked') && $('#fuzzy_dating').prop('checked'); $('#time_presets').find('option').each(function () { var text = ($(this).text()); $(this).text(checked ? text.replace(/(\b\d+:\d\d):\d+/mg, '$1') : text.replace(/(\b\d+:\d\d)(?:.\d+)?/mg, '$1:' + secs)); }); }); if ($('#fuzzy_dating').prop('checked')) if (elTrimZero.prop('checked')) elSecs.fadeOut('fast', 'linear'); else elSecs.fadeIn('fast', 'linear'); else elSecs.fadeIn('fast', 'linear'); }); $('#trim_zero, #fuzzy_dating').click(function () { ui_update_trim_zero(); }); ui_update_trim_zero(); $('.datePresets').click(function () { var elDatePresets = $('#date_presets'), defaultPreset = elDatePresets.val(); if ($(this).prop('checked') && '%x' == defaultPreset) { defaultPreset = '%a, %b %d, %Y'; $('#date_use_system_default').html('1') } else if (!$(this).prop('checked') && '1' == $('#date_use_system_default').html()) defaultPreset = '%x'; elDatePresets.attr('name', 'date_preset_old'); elDatePresets.attr('id', 'date_presets_old'); var elDatePresets_na = $('#date_presets_na'); elDatePresets_na.attr('name', 'date_preset'); elDatePresets_na.attr('id', 'date_presets'); var elDatePresets_old = $('#date_presets_old'); elDatePresets_old.attr('name', 'date_preset_na'); elDatePresets_old.attr('id', 'date_presets_na'); if (defaultPreset) elDatePresets.val(defaultPreset) }); // bind 'myForm' and provide a simple callback function $('#configForm').ajaxForm({ beforeSubmit: function () { $('.config_submitter').each(function () { $(this).attr('disabled', 'disabled'); $(this).after(' Saving...'); $(this).hide(); }); $('.show_update_hour_value').text($('#show_update_hour').val()) }, success: function (response) { setTimeout(function () {config_success(response)}, 2000); } }); $('#api_key').click(function () {$('#api_key').select()}); $('#generate_new_apikey').click(function () { $.get(sbRoot + '/config/general/generateKey', function (data) { if (data.error != undefined) { alert(data.error); return; } $('#api_key').val(data); }); }); $('#branchCheckout').click(function () { window.location.href = sbRoot + '/home/branchCheckout?branch=' + $('#branchVersion').val(); }); $('#pullRequestCheckout').click(function () { window.location.href = sbRoot + '/home/pullRequestCheckout?branch=' + $('#pullRequestVersion').val(); }); fetch_branches(); fetch_pullrequests(); $('#showlist_tagview').on('change', function() { var selected = '#showlist_tagview_', target = $(selected + 'custom_config'); target.removeClass('hidden'); if ('custom' !== $(this).val()) target.addClass('hidden'); $(selected + 'standard,' + selected + 'anime,' + selected + 'custom').removeClass('hidden').addClass('hidden'); $(selected + $(this).val()).removeClass('hidden'); }); }); function config_success(response) { if ('reload' == response) { window.location.reload(true); } else if ('restart' == response) { window.location.href = sbRoot + $('a.restart').attr('href') } $('.config_submitter').each(function () { $(this).removeAttr('disabled'); $(this).next().remove(); $(this).show(); }); $('#email_show').trigger('notify'); // update footer only on the config page for the propers option if('saveSearch' == $('#configForm').attr('action')){ getFooterTime({'change_layout': 0}); } } function fetch_pullrequests() { $.getJSON(sbRoot + '/config/general/fetch_pullrequests', function (data) { $('#pullRequestVersion').find('option').remove(); if (data['result'] == 'success') { var pulls = []; $.each(data['pulls'], function (i, pull) { if (pull[0] != '') { pulls.push(pull); } }); if (pulls.length > 0) { $.each(pulls, function (i, text) { add_option_to_pulls(text); }); $('#pullRequestCheckout').removeAttr('disabled'); } else { add_option_to_pulls(['No pull requests available', '']); } } else { add_option_to_pulls(['Failed to connect to github', '']); } }); } function fetch_branches() { $.getJSON(sbRoot + '/config/general/fetch_branches', function (data) { $('#branchVersion').find('option').remove(); if (data['result'] == 'success') { var branches = []; $.each(data['branches'], function (i, branch) { if (branch != '') { branches.push(branch); } }); if (branches.length > 0) { $.each(branches, function (i, text) { add_option_to_branches(text); }); $('#branchCheckout').removeAttr('disabled'); $('#branchVersion').find('option[value="' + data['current'] + '"]').prop('selected', !0); } else { add_option_to_branches('No branches available'); } } else { add_option_to_branches('Failed to connect to github'); } }); } function add_option_to_pulls(text) { var option = $('