mirror of
https://github.com/SickGear/SickGear.git
synced 2024-11-30 00:13:38 +00:00
135 lines
4.9 KiB
JavaScript
135 lines
4.9 KiB
JavaScript
|
$(document).ready(function() {
|
||
|
|
||
|
function make_row(tvid_prodid, season, episode, name, checked, airdateNever, qualityCss, qualityStr, sxe, recomend) {
|
||
|
var checkedbox = (checked ? ' checked' : ''),
|
||
|
rowClass = $('#row-class').val(),
|
||
|
ep_id = season + 'x' + episode;
|
||
|
|
||
|
return ' <tr id="ep-' + tvid_prodid + '-' + ep_id + '" class="' + (airdateNever ? 'airdate-never' : rowClass) + '">'
|
||
|
+ ' <td class="tableleft" align="center">'
|
||
|
+ '<input type="checkbox"'
|
||
|
+ ' class="' + tvid_prodid + '-epcheck"'
|
||
|
+ ' name="' + tvid_prodid + '-' + ep_id + ('' === recomend ? '' : '-' + recomend[1]) + '"'
|
||
|
+ checkedbox + '></td>'
|
||
|
+ ' <td class="text-nowrap"><span class="pull-left">' + sxe + '</span></td>'
|
||
|
+ ' <td class="tableright" style="width: 100%">'
|
||
|
+ ' <span class="quality show-quality ' + qualityCss + ' text-nowrap">' + qualityStr + '</span>'
|
||
|
+ ('' === recomend ? '' : '<input type="submit" class="pull-right change-status btn go" value="Go" style="margin-left:6px"><span class="pull-right recommend">' + recomend[0] + '</span>')
|
||
|
+ name + (airdateNever ? ' (<strong><em>airdate is never, this should change in time</em></strong>)' : '') + '</td>'
|
||
|
+ ' </tr>';
|
||
|
}
|
||
|
|
||
|
function selectRecommended(){
|
||
|
var setStatus$ = $('#set-status');
|
||
|
setStatus$.val('recommended').change();
|
||
|
setStatus$.find('option[value="recommended"]').prop('selected', !0);
|
||
|
}
|
||
|
|
||
|
function onGo(that){
|
||
|
if($(that).hasClass('change-status')){
|
||
|
$(that).closest('tr[id^="ep-"]').find('input[class*="-epcheck"]').prop('checked', !0);
|
||
|
$(that).prop('disabled', !0);
|
||
|
selectRecommended();
|
||
|
}
|
||
|
if ($('input[class*="-epcheck"]:checked').length === 0 && $('input[id*="allCheck-"]:checked').length === 0) {
|
||
|
alert('Please select at least one Show or Episode');
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$('.go').on('click', function(){
|
||
|
return onGo(this);
|
||
|
});
|
||
|
|
||
|
$('.allCheck').on('click', function(){
|
||
|
var indexer_id = $(this).attr('id').split('-')[1];
|
||
|
$('input[class*="' + indexer_id + '-epcheck"').prop('checked', $(this).prop('checked'));
|
||
|
});
|
||
|
|
||
|
$('.get_more_eps').show();
|
||
|
function show_episodes(btnElement) {
|
||
|
var match = btnElement.attr('id').match(/(.*)[-](.*)/);
|
||
|
if (null == match)
|
||
|
return false;
|
||
|
|
||
|
var tvid_prodid = match[1], expand = 'more' === match[2], btnExpand$ = $('input[id="' + match[0] + '"]'),
|
||
|
checked = $(document.getElementById('allCheck-' + tvid_prodid)).prop('checked'),
|
||
|
showHeader = $('tr[id="' + tvid_prodid + '"]'), episodeRows = $('tr[id*="ep-' + tvid_prodid + '"]'),
|
||
|
void_var = episodeRows.css({'visibility': expand ? 'visible' : 'collapse'});
|
||
|
|
||
|
btnExpand$.val(expand ? 'Expanding...' : 'Collapsing...');
|
||
|
|
||
|
if (0 === episodeRows.length) {
|
||
|
$.getJSON(sbRoot + '/manage/get-status-episodes',
|
||
|
{
|
||
|
tvid_prodid: tvid_prodid,
|
||
|
which_status: $('#old-status').val()
|
||
|
},
|
||
|
function (data) {
|
||
|
var recommend = '', recommendations=0, newGo$;
|
||
|
$.each(data, function(season, eps){
|
||
|
$.each(eps, function(episode, meta) {
|
||
|
recommend = /undefined/i.test(meta.recommend) ? '' : meta.recommend;
|
||
|
recommendations += ('' === recommend) ? 0 : 1;
|
||
|
showHeader.after(make_row(tvid_prodid, season, episode, meta.name, checked, meta.airdateNever, meta.qualityCss, meta.qualityStr, meta.sxe, recommend));
|
||
|
newGo$ = showHeader.next().find('.go');
|
||
|
if (newGo$.length){
|
||
|
newGo$.on('click', function(){return onGo(this);});
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
var setStatus$ = $('#set-status');
|
||
|
if (recommendations && 0 === setStatus$.find('.recommended').length) {
|
||
|
setStatus$.find('option').last().after('<optgroup class="recommended" label="whatever is"><option value="recommended">suggested</option></optgroup>');
|
||
|
selectRecommended();
|
||
|
}
|
||
|
btnExpand$.val(expand ? 'Expand' : 'Collapse');
|
||
|
btnElement.hide();
|
||
|
$('input[id="' + tvid_prodid + '-' + (expand ? 'less' : 'more') + '"]').show();
|
||
|
});
|
||
|
} else {
|
||
|
btnExpand$.val(expand ? 'Expand' : 'Collapse');
|
||
|
btnElement.hide();
|
||
|
$('input[id="' + tvid_prodid + '-' + (expand ? 'less' : 'more') + '"]').show();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
$('.get_more_eps,.get_less_eps').on('click', function(){
|
||
|
show_episodes($(this));
|
||
|
var btnExpandAll$ = $('.expand-all');
|
||
|
(0 === $('.get_more_eps:visible').length ? btnExpandAll$.hide() : btnExpandAll$.show());
|
||
|
});
|
||
|
|
||
|
$('.expand-all').on('click', function(){
|
||
|
$(this).hide();
|
||
|
$('.collapse-all').show();
|
||
|
$('.get_more_eps').each(function() {
|
||
|
show_episodes($(this));
|
||
|
});
|
||
|
});
|
||
|
|
||
|
$('.collapse-all').on('click', function(){
|
||
|
$(this).hide();
|
||
|
$('.expand-all').show();
|
||
|
$('.get_less_eps').each(function() {
|
||
|
show_episodes($(this));
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// selects all visible episode checkboxes.
|
||
|
$('.selectAllShows').on('click', function(){
|
||
|
$('.sickbeardTable input').each(function() {
|
||
|
this.checked = true;
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// clears all visible episode checkboxes and the season selectors
|
||
|
$('.unselectAllShows').on('click', function(){
|
||
|
$('.sickbeardTable input').each(function() {
|
||
|
this.checked = false;
|
||
|
});
|
||
|
});
|
||
|
|
||
|
});
|