2010-07-23 20:43:35 +08:00
|
|
|
UNKNOWN_REPR = '<span class="unknown">?</span>';
|
2010-07-22 23:29:19 +08:00
|
|
|
|
|
|
|
|
function fmt_string(str) {
|
2010-07-23 20:43:35 +08:00
|
|
|
if (str == undefined) return UNKNOWN_REPR;
|
2010-07-22 23:29:19 +08:00
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
2010-07-28 01:04:48 +08:00
|
|
|
function fmt_num(num) {
|
|
|
|
|
if (num == undefined) return UNKNOWN_REPR;
|
|
|
|
|
return num.toFixed(0);
|
|
|
|
|
}
|
|
|
|
|
|
2010-07-22 23:29:19 +08:00
|
|
|
function fmt_bytes(bytes) {
|
2010-07-23 20:43:35 +08:00
|
|
|
if (bytes == undefined) return UNKNOWN_REPR;
|
2010-07-22 23:29:19 +08:00
|
|
|
|
|
|
|
|
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.toFixed(0) : num.toFixed(1)) + powers[power];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function fmt_boolean(b) {
|
2010-07-23 20:43:35 +08:00
|
|
|
if (b == undefined) return UNKNOWN_REPR;
|
2010-07-22 23:29:19 +08:00
|
|
|
|
|
|
|
|
return b ? "●" : "○";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function fmt_color(r) {
|
2010-07-23 20:43:35 +08:00
|
|
|
if (r == undefined) return '';
|
2010-07-22 23:29:19 +08:00
|
|
|
|
|
|
|
|
if (r > 0.75) return 'red';
|
|
|
|
|
else if (r > 0.5) return 'yellow';
|
|
|
|
|
else return 'green';
|
|
|
|
|
}
|
|
|
|
|
|
2010-07-28 01:04:48 +08:00
|
|
|
function fmt_rate(obj, name) {
|
|
|
|
|
if (obj[name] == undefined) return '';
|
|
|
|
|
|
|
|
|
|
return fmt_num(obj[name + '_rate']) + '/s' +
|
|
|
|
|
'<sub>(' + fmt_num(obj[name]) + ' total)</sub>';
|
|
|
|
|
}
|
|
|
|
|
|
2010-07-22 23:29:19 +08:00
|
|
|
function alt_rows(i) {
|
|
|
|
|
return (i % 2 == 0) ? ' class="alt"' : '';
|
|
|
|
|
}
|
|
|
|
|
|
2010-08-24 18:37:54 +08:00
|
|
|
function esc(str) {
|
|
|
|
|
return escape(str).replace('/', '%2F');
|
|
|
|
|
}
|