2010-07-12 22:04:42 +08:00
|
|
|
$(document).ready(function() {
|
|
|
|
update();
|
2010-07-13 00:11:42 +08:00
|
|
|
timer = setInterval("update()", 5000);
|
2010-07-12 22:04:42 +08:00
|
|
|
});
|
|
|
|
|
2010-07-13 00:11:42 +08:00
|
|
|
var timer;
|
|
|
|
|
2010-07-12 22:04:42 +08:00
|
|
|
function update() {
|
|
|
|
with_req('/json/', function(text) {
|
2010-07-13 00:11:42 +08:00
|
|
|
var html = format(template_main(), JSON.parse(text));
|
|
|
|
$("#main").empty();
|
|
|
|
$(html).appendTo("#main");
|
2010-07-12 22:04:42 +08:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function format(template, json) {
|
|
|
|
try {
|
2010-07-13 00:11:42 +08:00
|
|
|
var tmpl = jsontemplate.Template(template,
|
|
|
|
{more_formatters: more_formatters});
|
|
|
|
return tmpl.expand(json);
|
2010-07-12 22:04:42 +08:00
|
|
|
} catch (err) {
|
|
|
|
alert(err['name'] + ": " + err['message']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-07-13 00:11:42 +08:00
|
|
|
function more_formatters(name) {
|
|
|
|
if (name == 'bytes')
|
|
|
|
return format_bytes;
|
|
|
|
else
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
function format_bytes(bytes) {
|
|
|
|
function f(n, p) {
|
|
|
|
if (n > 1024) return f(n / 1024, p + 1);
|
|
|
|
else return [n, p];
|
|
|
|
}
|
|
|
|
|
|
|
|
[num, power] = f(bytes, 0);
|
|
|
|
var powers = ['B', 'kB', 'MB', 'GB', 'TB'];
|
|
|
|
return (power == 0 ? num : num.toFixed(1)) + powers[power];
|
|
|
|
}
|
|
|
|
|
2010-07-12 22:04:42 +08:00
|
|
|
function with_req(path, fun) {
|
|
|
|
var json;
|
|
|
|
var req = new XMLHttpRequest();
|
|
|
|
req.open( "GET", path, true );
|
|
|
|
req.onreadystatechange = function () {
|
|
|
|
if (req.readyState == 4) {
|
|
|
|
if (req.status == 200) {
|
|
|
|
fun(req.responseText);
|
|
|
|
}
|
2010-07-13 00:11:42 +08:00
|
|
|
else if (req.status == 0) {
|
|
|
|
clearInterval(timer);
|
|
|
|
}
|
2010-07-12 22:04:42 +08:00
|
|
|
else {
|
|
|
|
alert("Got response code " + req.status);
|
2010-07-13 00:11:42 +08:00
|
|
|
clearInterval(timer);
|
2010-07-12 22:04:42 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
req.send(null);
|
|
|
|
}
|