webui-aria2/js/filters/bytes.js
Nils Maier 38a413e95b Performance improvements
* Pre-compute name, formatted sizes and speeds.
* Handle name edge-cases such as no-path and no-uris better.
* Unroll getCtx.
* Improve performance of mergeMap.
* Delay the search filter.

As indicated by Chrome/Gecko profilers.
2014-02-28 13:30:44 +01:00

26 lines
860 B
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

angular.module('webui.filters.bytes', ["webui.services.utils"])
.filter('blength', ['$filter', "$utils", function(filter, utils) {
return utils.fmtsize;
}])
.filter('bspeed', ['$filter', "$utils", function(filter, utils) {
return utils.fmtspeed;
}])
.filter('time', function() {
function pad(f) {
return ("0" + f).substr(-2);
}
return function(time) {
time = parseInt(time, 10);
if (!time || !isFinite(time)) return "∞";
var secs = time % 60;
if (time < 60) return secs + "s";
var mins = Math.floor((time % 3600) / 60)
if (time < 3600) return pad(mins) + ":" + pad(secs);
var hrs = Math.floor((time % 86400) / 3600);
if (time < 86400) return pad(hrs) + ":" + pad(mins) + ":" + pad(secs);
var days = Math.floor(time / 86400);
return days + "::" + pad(hrs) + ":" + pad(mins) + ":" + pad(secs);
};
});