You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.8 KiB
80 lines
2.8 KiB
11 years ago
|
var DownloadersBase = new Class({
|
||
|
|
||
|
Implements: [Events],
|
||
|
|
||
|
initialize: function(){
|
||
|
var self = this;
|
||
|
|
||
|
// Add test buttons to settings page
|
||
|
App.addEvent('load', self.addTestButtons.bind(self));
|
||
|
|
||
|
},
|
||
|
|
||
|
// Downloaders setting tests
|
||
|
addTestButtons: function(){
|
||
|
var self = this;
|
||
|
|
||
|
var setting_page = App.getPage('Settings');
|
||
|
setting_page.addEvent('create', function(){
|
||
|
Object.each(setting_page.tabs.downloaders.groups, self.addTestButton.bind(self))
|
||
|
})
|
||
|
|
||
|
},
|
||
|
|
||
|
addTestButton: function(fieldset, plugin_name){
|
||
|
var self = this,
|
||
|
button_name = self.testButtonName(fieldset);
|
||
|
|
||
|
if(button_name.contains('Downloaders')) return;
|
||
|
|
||
|
Api.request('download.'+plugin_name+'.is_testable', {
|
||
|
'onComplete': function(json){
|
||
|
if(json.success){
|
||
|
// Only add test button if downloader is testable
|
||
|
new Element('.ctrlHolder.test_button').adopt(
|
||
|
new Element('a.button', {
|
||
|
'text': button_name,
|
||
|
'events': {
|
||
|
'click': function(){
|
||
|
var button = fieldset.getElement('.test_button .button');
|
||
|
button.set('text', 'Connecting...');
|
||
|
|
||
|
Api.request('download.'+plugin_name+'.test', {
|
||
|
'onComplete': function(json){
|
||
|
|
||
|
button.set('text', button_name);
|
||
|
|
||
|
if(json.success){
|
||
|
var message = new Element('span.success', {
|
||
|
'text': 'Connection successful'
|
||
|
}).inject(button, 'after')
|
||
|
}
|
||
|
else {
|
||
|
var message = new Element('span.failed', {
|
||
|
'text': 'Connection failed. Check logs for details.'
|
||
|
}).inject(button, 'after')
|
||
|
}
|
||
|
|
||
|
(function(){
|
||
|
message.destroy();
|
||
|
}).delay(3000)
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
).inject(fieldset);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
},
|
||
|
|
||
|
testButtonName: function(fieldset){
|
||
|
var name = String(fieldset.getElement('h2').innerHTML).substring(0,String(fieldset.getElement('h2').innerHTML).indexOf("<span"));
|
||
|
return 'Test '+name;
|
||
|
},
|
||
|
|
||
|
});
|
||
|
|
||
|
window.Downloaders = new DownloadersBase();
|