1
0
mirror of https://github.com/moparisthebest/SickRage synced 2024-12-13 11:32:20 -05:00

Merge pull request #792 from KontiSR/dev-improvements-newznab-capabilities

changed technique retrieving of newznab capabilities from sync ajax call...
This commit is contained in:
adam111316 2014-09-11 16:59:19 +08:00
commit b4375dfee5

View File

@ -13,8 +13,18 @@ $(document).ready(function(){
}); });
} }
/**
$.fn.getCategories = function (isDefault, name, url, key) { * Gets categories for the provided newznab provider.
* @param {String} isDefault
* @param {Array} selectedProvider
* @return no return data. Function updateNewznabCaps() is run at callback
*/
$.fn.getCategories = function (isDefault, selectedProvider) {
var name = selectedProvider[0];
var url = selectedProvider[1];
var key = selectedProvider[2];
if (!name) if (!name)
return; return;
@ -28,22 +38,11 @@ $(document).ready(function(){
var params = {url: url, name: name, key: key}; var params = {url: url, name: name, key: key};
var returnData; var returnData;
$.ajaxSetup( { "async": false } );
$.getJSON(sbRoot + '/config/providers/getNewznabCategories', params, $.getJSON(sbRoot + '/config/providers/getNewznabCategories', params,
function(data){ function(data){
if (data.error != "") { updateNewznabCaps( data, selectedProvider );
return false;
}
if (data.success == false) {
return false;
}
console.debug(data.tv_categories); console.debug(data.tv_categories);
returnData = data;
}); });
$.ajaxSetup( { "async": true } );
return returnData;
} }
$.fn.addProvider = function (id, name, url, key, cat, isDefault, showProvider) { $.fn.addProvider = function (id, name, url, key, cat, isDefault, showProvider) {
@ -201,30 +200,13 @@ $(document).ready(function(){
//Get Categories Capabilities //Get Categories Capabilities
if (data[0] && data[1] && data[2] && !ifExists($.fn.newznabProvidersCapabilities, data[0])) { if (data[0] && data[1] && data[2] && !ifExists($.fn.newznabProvidersCapabilities, data[0])) {
var categoryresult = $(this).getCategories(isDefault, data[0], data[1], data[2]); $(this).getCategories(isDefault, data);
if (categoryresult && categoryresult.success && categoryresult.tv_categories) { }
$.fn.newznabProvidersCapabilities.push({'name' : data[0], 'categories' : categoryresult.tv_categories}); else {
} updateNewznabCaps( null, data );
} }
//Loop through the array and if currently selected newznab provider name matches one in the array, use it to
//update the capabilities select box (on the left).
if (data[0]) {
$.fn.newznabProvidersCapabilities.forEach(function(newzNabCap) {
if (newzNabCap.name && newzNabCap.name == data[0] && newzNabCap.categories instanceof Array) {
var newCapOptions = [];
newzNabCap.categories.forEach(function(category_set) {
if (category_set.id && category_set.name) {
newCapOptions.push({value : category_set.id, text : category_set.name + "(" + category_set.id + ")"});
};
});
$("#newznab_cap").replaceOptions(newCapOptions);
}
});
};
} }
} }
@ -243,6 +225,41 @@ $(document).ready(function(){
return found; return found;
}; };
/**
* Updates the Global array $.fn.newznabProvidersCapabilities with a combination of newznab prov name
* and category capabilities. Return
* @param {Array} newzNabCaps, is the returned object with newzNabprod Name and Capabilities.
* @param {Array} selectedProvider
* @return no return data. The multiselect input $("#newznab_cap") is updated, as a result.
*/
updateNewznabCaps = function( newzNabCaps, selectedProvider ) {
if (newzNabCaps && !ifExists($.fn.newznabProvidersCapabilities, selectedProvider[0])) {
$.fn.newznabProvidersCapabilities.push({'name' : selectedProvider[0], 'categories' : newzNabCaps.tv_categories});
}
//Loop through the array and if currently selected newznab provider name matches one in the array, use it to
//update the capabilities select box (on the left).
if (selectedProvider[0]) {
$.fn.newznabProvidersCapabilities.forEach(function(newzNabCap) {
if (newzNabCap.name && newzNabCap.name == selectedProvider[0] && newzNabCap.categories instanceof Array) {
var newCapOptions = [];
newzNabCap.categories.forEach(function(category_set) {
if (category_set.id && category_set.name) {
newCapOptions.push({value : category_set.id, text : category_set.name + "(" + category_set.id + ")"});
};
});
$("#newznab_cap").replaceOptions(newCapOptions);
}
});
};
}
$.fn.makeNewznabProviderString = function() { $.fn.makeNewznabProviderString = function() {
var provStrings = new Array(); var provStrings = new Array();