var modals = {
err_connect: undefined,
change_conf: undefined,
newDownload_modal: undefined
};
var clear_dialogs = function() {
modals.err_connect = $('#error_connect').modal('hide');
modals.change_conf = $('#change_conf').modal('hide');
modals.newDownload_modal = $('#newDownload_modal').modal('hide');
};
var server_conf = {
host: 'localhost',
port: 6800
};
var custom_aria2_connect = function() {
modals.err_connect.modal('hide');
modals.change_conf.modal('show');
};
var update_server_conf = function() {
server_conf.host = $('#input_host').val();
server_conf.port = $('#input_port').val();
clear_dialogs();
update_ui();
};
var aria_syscall = function(conf) {
$.ajax({
url: 'http://' + server_conf.host + ':' + server_conf.port + '/jsonrpc',
timeout: 3000,
data: {
jsonrpc: 2.0,
id: 'webui',
method: 'aria2.' + conf.func.toString(),
params: conf.params
},
success: conf.sucess,
error: conf.error,
dataType: 'jsonp',
jsonp: 'jsoncallback'
});
}
var log = $('#console');
var update_ui = function() {
aria_syscall({
func: 'getVersion',
sucess: function(data) {
updateDownloads();
},
error: function() {
modals.err_connect.modal('show');
log.append('error connecting!!
');
}
});
};
$(function() {
clear_dialogs();
update_ui();
$('#newDownload').click(function() {
modals.newDownload_modal.modal('show');
});
$('#addNewDownload').click(newDownload);
});
/*function updateDownloads() {
updateDownloads();
updateWaiting();
updateStopDownloads();
}*/
function newDownload() {
var url = $('#newDownload_url').val();
aria_syscall({
func: 'addUri',
params: base64.btoa(JSON.stringify([[url]])),
sucess: function() {
clear_dialogs();
update_ui();
}
});
}
var d_files = [];
function updateDownloads() {
aria_syscall({
func: 'tellActive',
sucess: function(data) {
var down_template = $('#download_item_template').text();
var results = data.result;
$('#downloads').html("");
for(var i = 0; i < results.length; i++) {
console.log('adding downloads!!!');
var percentage =(results[i].completedLength / results[i].totalLength)*100;
percentage = Math.round(percentage*1000)/1000;
ctx = {
name: results[i].files[0].path,
status: results[i].status,
percentage:percentage
};
var item = Mustache.render(down_template, ctx);
console.log(ctx);
console.log(results[i]);
$('#downloads').append(item);
}
if(results && results.length === 0) {
$('#downloads').append('no downloads!!!!');
}
},
error: function() {
modals.err_connect.modal('show');
log.append('error connecting!!
');
}
});
}
function updateWaiting() {
}
function updateStopDownloads() {
}
setInterval(update_ui, 1000);