mirror of
https://github.com/SickGear/SickGear.git
synced 2024-11-27 15:13:38 +00:00
133 lines
3.8 KiB
JavaScript
133 lines
3.8 KiB
JavaScript
|
function setFromPresets (preset){
|
||
|
var elCustomQuality = $('.show-if-quality-custom');
|
||
|
|
||
|
if(preset = parseInt(preset)){
|
||
|
var upgradePreset = !0, quality, stateReqd, btn$;
|
||
|
elCustomQuality.fadeOut('fast', 'linear');
|
||
|
|
||
|
$('#wanted-qualities, #upgrade-qualities').find('option').each(function(){
|
||
|
if(upgradePreset && /upgrade/.test($(this).parent().attr('id'))){
|
||
|
upgradePreset = !1;
|
||
|
switch(preset){
|
||
|
case 3: preset = 128 + 32 + 4; break;
|
||
|
case 164: preset = 256 + 64 + 16 + 4; break;
|
||
|
case 336: preset = 256; break;
|
||
|
default: preset = 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
quality = $(this).val(); // quality from select$
|
||
|
stateReqd = ((preset & parseInt(quality, 10)) ? !0 : !1);
|
||
|
if(stateReqd !== this.selected){
|
||
|
$(this).prop('selected', stateReqd);
|
||
|
|
||
|
btn$ = $(/upgrade/.test($(this).parent().attr('id')) ? '#upgrade-quality' : '#wanted-quality')
|
||
|
.find('a.btn[data-quality="' + quality + '"]');
|
||
|
if(!stateReqd){
|
||
|
btn$.removeClass('active');
|
||
|
} else {
|
||
|
btn$.removeClass('disabled').addClass('active');
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
} else
|
||
|
elCustomQuality.fadeIn('fast', 'linear');
|
||
|
|
||
|
refreshUpgrades();
|
||
|
presentTips();
|
||
|
}
|
||
|
|
||
|
function presentTips(){
|
||
|
var tip$ = $('#unknown-quality'), tip2$;
|
||
|
if($('#wanted-quality').find('a.btn[data-quality="32768"]').hasClass('active')){
|
||
|
tip$.fadeIn('fast', 'linear');
|
||
|
} else {
|
||
|
tip$.fadeOut('fast', 'linear');
|
||
|
}
|
||
|
|
||
|
tip$ = $('#no-upgrade'); tip2$ = $('#upgrade-cond, #upgrade-once-opt');
|
||
|
if($('#upgrade-quality').find('a.btn').hasClass('active')){
|
||
|
tip$.fadeOut('fast', 'linear', function(){tip2$.fadeIn('fast', 'linear');});
|
||
|
} else {
|
||
|
if(!!$('#upgrade-once:checked').length){
|
||
|
$('#upgrade-once').click();
|
||
|
}
|
||
|
tip2$.fadeOut('fast', 'linear', function(){tip$.fadeIn('fast', 'linear');});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function refreshUpgrades(){
|
||
|
var btn$, minQuality=99999999, quality, upgrade$;
|
||
|
|
||
|
$.map($('#wanted-quality').find('a.btn.active'), function(btn){
|
||
|
btn$ = $(btn);
|
||
|
quality = parseInt(btn$.data('quality'), 10);
|
||
|
minQuality = quality < minQuality ? quality : minQuality;
|
||
|
});
|
||
|
|
||
|
$.map($('#upgrade-quality').find('a.btn'), function(btn){
|
||
|
btn$ = $(btn);
|
||
|
quality = parseInt(btn$.data('quality'), 10);
|
||
|
upgrade$ = $('#upgrade-qualities');
|
||
|
if(quality <= minQuality){
|
||
|
if(btn$.hasClass('active') // then btn is about to changed state so reflect change to select option
|
||
|
|| 1 === upgrade$.find('option[value="' + quality + '"]:selected').length){
|
||
|
upgrade$.find('option[value="' + quality + '"]').prop('selected', !1);
|
||
|
}
|
||
|
btn$.removeClass('active').addClass('disabled');
|
||
|
} else if(btn$.hasClass('disabled')){
|
||
|
btn$.removeClass('disabled');
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
$(function(){
|
||
|
var elQualityPreset = $('#quality-preset'),
|
||
|
selected = ':selected';
|
||
|
|
||
|
elQualityPreset.change(function(){
|
||
|
setFromPresets($(this).find(selected).val());
|
||
|
});
|
||
|
|
||
|
setFromPresets(elQualityPreset.find(selected).val());
|
||
|
|
||
|
$('#wanted-qualities').change(function(){
|
||
|
presentTips();
|
||
|
});
|
||
|
|
||
|
$('#custom-quality').find('a[href="#"].btn').on('click', function(event){
|
||
|
event.stopPropagation();
|
||
|
var active$ = $('#wanted-quality').find('a.btn.active'), num_active = active$.length;
|
||
|
|
||
|
if(1 < num_active || (1 === num_active && $(this).data('quality') !== active$.data('quality'))){
|
||
|
|
||
|
$(this).toggleClass('active');
|
||
|
|
||
|
var isInit = 'wanted-quality' === $(this).closest('.component-desc').attr('id'),
|
||
|
select$ = $(isInit ? '#wanted-qualities' : '#upgrade-qualities'),
|
||
|
quality = $(this).data('quality'),
|
||
|
arrSelected = $.map(select$.val(), function (v){
|
||
|
return parseInt(v, 10)
|
||
|
}) || Array();
|
||
|
|
||
|
if($(this).hasClass('active')){
|
||
|
arrSelected.push(quality);
|
||
|
} else {
|
||
|
arrSelected = arrSelected.filter(function (elem){
|
||
|
return elem !== quality;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
select$.val(arrSelected).change();
|
||
|
|
||
|
if(isInit){
|
||
|
refreshUpgrades();
|
||
|
}
|
||
|
|
||
|
presentTips();
|
||
|
|
||
|
}
|
||
|
return !1;
|
||
|
});
|
||
|
});
|