/** @namespace $.SickGear.Root */ /** @namespace config.sortArticle */ /** @namespace config.resultsSortby */ /** @namespace config.searchTests */ /** @namespace config.folder */ $(document).ready(function () { function htmlFlag(lang) { return ' class="flag" style="background-image:url(' + $.SickGear.Root + '/images/flags/' + lang + '.png)"' } function uriFlag(lang) { return $.SickGear.Root + '/images/flags/' + lang + '.png' } function populateLangSelect() { if (!$('#nameToSearch').length) return; if (1 >= $('#infosrc-lang-select').find('option').length) { $.getJSON(sbRoot + '/add-shows/get-infosrc-languages', {}, function (data) { var htmlText = '', flag, selected = ' selected="selected"', elInfosrcLang = $('#infosrc-lang-select'), useSelect2 = 0 < data.results_ext.length, populateItem; if (0 === data.results.length && 0 === data.results_ext.length) { htmlText = ''; } else { if (useSelect2) { $('#nameToSearch').addClass('select2'); // 3 letter abbr object $.each(data.results_ext, function (index, obj) { htmlText += ''; }); } else { // legacy 2 letter abbr list $.each(data.results, function (index, obj) { flag = htmlFlag(obj); htmlText += ''; }); } } elInfosrcLang.html(htmlText); elInfosrcLang.change(function () { searchIndexers(); }); if (useSelect2) { populateItem = function(data) { if (!!data.element) return $('' + data.text + ''); return data.text; } elInfosrcLang.select2({templateResult: populateItem, templateSelection: populateItem, width: 155}); } }); } } function cleanseText(text, toDisplay) { return (!0 == toDisplay ? text .replace(/["]/g, '"') : text .replace(/(?:["]|")/g, '') ); } var searchRequestXhr = null; function searchIndexers() { var elNameToSearch = $('#nameToSearch'); if (!elNameToSearch.val().length) return; $('#more-results').hide(); if (searchRequestXhr) searchRequestXhr.abort(); var elTvDatabase = $('#provided-tvid'), elInfosrcLang = $('#infosrc-lang-select'), tvsrcName = elTvDatabase.find('option:selected').text(), tvSearchSrc = 0 < tvsrcName.length ? ' ' + elTvDatabase.find('option:selected').attr('data-name') + '' : ''; $('#search-results').empty().html('' + ' searching ' + tvSearchSrc + ' in lang:' + elInfosrcLang.val() + ' ' + ' for ' + cleanseText(elNameToSearch.val(), !0) + '' + '...'); searchRequestXhr = $.ajax({ url: sbRoot + '/add-shows/search-tvinfo-for-showname', data: { 'search_term': cleanseText(elNameToSearch.val(), !1), 'lang': elInfosrcLang.val(), 'search_tvid': elTvDatabase.val() }, timeout: parseInt($('#indexer_timeout').val(), 10) * parseInt($('#indexer_count').val(), 2) * 1000 + 15000, dataType: 'json', error: function () { $('#search-results').empty().html('search timed out, try again in a few mins.'); }, success: function (data) { var resultStr = '', attrs = '', checked = !1, rowType, row = 0, srcState = '', resultItem, nBuffer = 0, nBufferSize = 20, nAll = 0; if (null === data.results || 0 === data.results.length) { resultStr += 'Sorry, no results found. Try a different search.'; } else { var n = 0, result = { SrcName: n, isInDB: ++n, SrcId: ++n, SrcDBId: ++n, SrcSlug: ++n, SrcUrl: ++n, ShowID: ++n, Title: ++n, TitleHtml: ++n, Aired: ++n, AiredStr: ++n, Network: ++n, Genre: ++n, Language: ++n, LanguageCC: ++n, Overview: ++n, ImgUrl: ++n, RelSort: ++n, RelCombined : ++n, NewestAired: ++n, NewestCombined: ++n, OldestAired: ++n, OldestCombined: ++n, AzSort: ++n, AzCombined : ++n, ZaSort: ++n, ZaCombined: ++n, DirectIdMatch: ++n, RenameSuggest: ++n }; $.each(data.results, function (index, item) { attrs = (!1 !== item[result.isInDB] ? ' disabled="disabled"' : (!0 === checked ? '' : ' checked')) + ' data-rename-suggest="' + item[result.RenameSuggest] + '"'; checked = (-1 === attrs.indexOf('checked')) ? checked : !0; rowType = (0 === row % 2 ? '' : ' alt'); row++; var displayShowName = cleanseText(item[result.Title], !0), showstartdate = ''; if (null !== item[result.Aired]) { var startDate = new Date(item[result.Aired]); var today = new Date(); showstartdate = ' (' + (startDate > today ? 'will debut' : 'started') + ': ' + item[result.AiredStr] + ')'; } srcState = [ null === item[result.SrcName] ? '' : item[result.SrcName], !1 === item[result.isInDB] ? '' : 'exists in db'] .join(' - ').replace(/(^[\s-]+|[\s-]+$)/, ''); resultItem = '
' + item[result.Overview] + '
' : '') + 'Click for more' + '"' + ' href="' + anonURL + item[result.SrcUrl] + '"' + ' onclick="window.open(this.href, \'_blank\'); return !1;"' + '>' + (config.sortArticle ? displayShowName : displayShowName.replace(/^((?:A(?!\s+to)n?)|The)(\s)+(.*)/i, '$3$2($1)')) + '' + showstartdate + ('' === srcState ? '' : ' ' + '[' + srcState + ']' + '') + '' + "\n"; resultStr += resultItem; if(item[result.isInDB]) nBufferSize++; if ((nBuffer < nBufferSize) || item[result.isInDB]) nBuffer++; nAll++; }); } var selAttr = 'selected="selected" ', selClass = 'selected-text', classAttrSel = 'class="' + selClass + '" ', defSortby = /^az/.test(config.resultsSortby) || /^za/.test(config.resultsSortby) || /^newest/.test(config.resultsSortby) || /^oldest/.test(config.resultsSortby) ? '': classAttrSel + selAttr; $('#search-results').addClass('collapsed').html( '' ); function displayCount(){ $('#count').html((nAll > nBufferSize ? nBuffer + ' of ' + nAll : (0 < nAll ? nAll : 'No')) + ' result' + (1 === nAll ? '' : 's') + '...'); } displayCount(); var defaultExpander = 'expand list' $('#results-expander').html((nAll > nBufferSize ? ' ' : '')); $('#more-results').show(); $('#more-results a').on('click', function(e, d) { e.preventDefault(); var results$ = $('#search-results'), displayAction = ''; if (results$.hasClass('collapsed')){ displayAction = 'collapse list'; results$.removeClass('collapsed'); $('#count').html('All ' + nAll + ' result' + (1 === nAll ? '' : 's')); } else { displayAction = defaultExpander; results$.addClass('collapsed'); displayCount(); } $('#more-results').find('a').html(displayAction); container$.isotope('updateSortData'); updateResults(); myform.loadsection(0); }); var container$ = $('#holder'), sortbySelect$ = $('#results-sortby'), reOrder = (function(value){ return ($('#results-sortby').find('option[value$="notop"]').hasClass(selClass) ? (1000 > value ? value + 1000 : value) : (1000 > value ? value : value - 1000))}), fx = {filterData: function(){ var results$ = $('#search-results'); if (results$.hasClass('collapsed')){ var itemElem = this, number = getAttr(itemElem, 'sort-' + results$.find('option:not([value$="top"],[value$="group"]).' + selClass).val()); number -= number >= 1000 ? 1000 : 0; return (number < nBufferSize ) || !!getAttr(itemElem, 'indb'); } return !0; }}, getAttr = (function(itemElem, attr){ var number = $(itemElem).attr('data-' + attr); return ('undefined' !== typeof(number)) && parseInt(number, 10) || 0; }), getData = (function(itemElem, sortby){ var position = getAttr(itemElem, 'sort-' + sortby + ($('#results-sortby').find('option[value$="ingroup"]').hasClass(selClass) ? '' : '-combined')); return (!!getAttr(itemElem, 'indb') ? reOrder(position) : position); }); sortbySelect$.find('.' + selClass).each(function(){ $(this).html('> ' + $(this).html()); }); function updateResults(){ $('.results-item').removeClass('alt'); container$.isotope({ itemSelector: '.results-item', sortBy: sortbySelect$.find('option:not([value$="top"],[value$="group"]).' + selClass).val(), layoutMode: 'masonry', filter: fx['filterData'], getSortData: { az: function(itemElem){ return getData(itemElem, 'az'); }, za: function(itemElem){ return getData(itemElem, 'za'); }, newest: function(itemElem){ return getData(itemElem, 'newest'); }, oldest: function(itemElem){ return getData(itemElem, 'oldest'); }, rel: function(itemElem){ return getData(itemElem, 'rel'); } } }).on('arrangeComplete', function(event, items){ $(items).each(function(i, item){ if (1 === i % 2){ $(item.element).addClass('alt'); } }); }); } container$.isotope(); // must init first updateResults(); sortbySelect$.on('change', function(){ var selectedSort = String($(this).val()), sortby = selectedSort, curSortby$, curSel$, newSel$; curSortby$ = $(this).find('option:not([value$="top"],[value$="group"])'); if (/(top|group)$/.test(selectedSort)){ sortby = curSortby$.filter('.' + selClass).val(); curSortby$ = $(this).find('option[value$="' + (-1 !== selectedSort.indexOf('top') ? 'top' : 'group') + '"]'); } curSel$ = curSortby$.filter('.' + selClass); curSel$.html(curSel$.html().replace(/(?:>|>)\s/ , '')).removeClass(selClass); newSel$ = $(this).find('option[value$="' + selectedSort + '"]'); newSel$.html('> ' + newSel$.html()).addClass(selClass); $('.results-item[data-indb="1"]').each(function(){ $(this).attr(sortby, reOrder(parseInt($(this).attr(sortby), 10))); }); container$.isotope('updateSortData'); updateResults(); config.resultsSortby = sortby + ($(this).find('option[value$="notop"]').hasClass(selClass) ? ' notop' : '') + ($(this).find('option[value$="nogroup"]').hasClass(selClass) ? ' nogroup' : ''); $.get(sbRoot + '/config/general/save-result-prefs', {ui_results_sortby: selectedSort}); }); updateSampleText(); myform.loadsection(0); $('.stepone-result-radio, .stepone-result-title').each(addQTip); } }); } function submitSearch(searchFor){ $('#nameToSearch').val(searchFor); !!searchFor && $('#searchName').click(); return !1; } $('#try-0').on('click', function(){return submitSearch('');}); $('#try-1').on('click', function(){return submitSearch(config.searchTests[1]);}); $('span[id^="try-"]').each(function(i, el){ var match = $(el).attr('id').match(/try-(\d+)(-.*)$/i); if (!!match){ $('#' + match[0]).on('click', function(){ var match = $(this).attr('id').match(/try-(\d+)(-.*)$/i), num = parseInt(match[1], 10), kind = match[2], nextEl$ = $('span[id$="'+ (num + 1) + kind + '"]'); $(this).closest('span[id^="try-"]').addClass('hide'); (nextEl$.length ? nextEl$ : $('span[id$="'+ kind + '"]:first')).removeClass('hide'); return submitSearch(config.searchTests[num]); }); } }); var elNameToSearch = $('#nameToSearch'), elSearchName = $('#searchName'); elSearchName.click(function () { searchIndexers(); }); if (elNameToSearch.length && elNameToSearch.val().length) { elSearchName.click(); } $('#addShowButton, #cancelShowButton').click(function () { if (/cancel/.test(this.id)){ $('input[name=cancel_form]').val('1'); } else { // if they haven't picked a show don't let them submit if (!$('input:radio[name="which_series"]:checked').val() && !$('input:hidden[name="which_series"]').val().length) { alert('You must choose a show to continue'); return !1; } generateAniGroupList(); } $('#addShowForm').submit(); }); $('#skipShowButton').click(function () { $('#skipShow').val('1'); $('#addShowForm').submit(); }); $('#quality-preset').change(function () { myform.loadsection(2); }); /*********************************************** * jQuery Form to Form Wizard- (c) Dynamic Drive (www.dynamicdrive.com) * This notice MUST stay intact for legal use * Visit http://www.dynamicdrive.com/ for this script and 100s more. ***********************************************/ var myform = $.SickGear.myform = new FormToWizard({ fieldsetborderwidth: 0, formid: 'addShowForm', revealfx: ['slide', 500], oninit: function () { populateLangSelect(); updateSampleText(); if ($('input:hidden[name="which_series"]').length && $('#fullShowPath').length) { goToStep(3); } } }); function goToStep(num) { $('.step').each(function () { if ($.data(this, 'section') + 1 == num) { $(this).click(); } }); } elNameToSearch.focus(); function updateSampleText() { if (0 === $('#displayText').length) { $('#cancelShowButton').attr('disabled', !1); $('#addShowButton').attr('disabled', 0 === $('#holder').find('.results-item').length); return; } // if something's selected then we have some behavior to figure out var showName = '', sep_char, elRadio = $('input:radio[name="which_series"]:checked'), elInput = $('input:hidden[name="which_series"]'), elScene = $('#scene'), elRootDirs = $('#rootDirs'), elFullShowPath = $('#fullShowPath'), idxWhichShowID = 2, idxWhichTitle = 3; if (!!elRadio.length) { $('#rename-suggest').val(elRadio.attr('data-rename-suggest')); } if (!!config.folder.length) { showName = config.folder; } // if they've picked a radio button then use that else if (elRadio.length) { showName = elRadio.val().split('|')[idxWhichTitle]; elScene[0].checked = 0 <= showSceneMaps.indexOf(parseInt(elRadio.val().split('|')[idxWhichShowID], 10)); $('#scene-maps-found').css('display', elScene.is(':checked') ? 'block' : 'None'); } // if we provided a show in the hidden field, use that else if (elInput.length && elInput.val().length) { showName = $('#provided-show-name').val(); } updateAniGrouplist(showName); var sample_text = 'Adding show ' + cleanseText(showName, !0) + ''
+ (!showName.length ? 'into
' : '
into' + (!config.folder.length ? '' : ' user location'))
+ ' ';
// if we have a root dir selected, figure out the path
if (elRootDirs.find('option:selected').length) {
var root_dir_text = elRootDirs.find('option:selected').val();
if (root_dir_text.indexOf('/') >= 0) {
sep_char = '/';
} else if (root_dir_text.indexOf('\\') >= 0) {
sep_char = '\\';
} else {
sep_char = '';
}
if (root_dir_text.substr(sample_text.length - 1) != sep_char) {
root_dir_text += sep_char;
}
root_dir_text += '||' + sep_char;
sample_text += root_dir_text;
} else if (elFullShowPath.length && elFullShowPath.val().length) {
sample_text += elFullShowPath.val();
} else {
sample_text += 'unknown dir.';
}
sample_text += '