diff --git a/angular.html b/angular.html
index 5d08155..b3ee0b6 100644
--- a/angular.html
+++ b/angular.html
@@ -35,6 +35,8 @@
+
+
@@ -151,9 +153,11 @@
+
+
@@ -178,32 +182,32 @@
- Status: {{download.status}}
- - ETA: {{download.eta}}
- - Size: {{download.totalLength}}
- - Downloaded: {{download.completedLength}}
+ - ETA: {{download.eta | time}}
+ - Size: {{download.totalLength | blength}}
+ - Downloaded: {{download.completedLength | blength}}
- Progress: {{download.percentage}}%
- - Speed: {{download.downloadSpeed}}
+ - Speed: {{download.downloadSpeed | bspeed}}
- Status: {{download.status}}
- - Size: {{download.totalLength}}
- - Downloaded: {{download.completedLength}}
+ - Size: {{download.totalLength | blength}}
+ - Downloaded: {{download.completedLength | blength}}
- Path: {{download.dir}}
- Status: {{download.status}}
- Path: {{download.dir}}
- - Size: {{download.totalLength}}
+ - Size: {{download.totalLength | blength}}
- Status: {{download.status}}
- Path: {{download.dir}}
- - Size: {{download.totalLength}}
+ - Size: {{download.totalLength | blength}}
- Status: {{download.status}}
- Path: {{download.dir}}
- - Size: {{download.totalLength}}
+ - Size: {{download.totalLength | blength}}
|
@@ -241,26 +245,26 @@
Status: {{download.status}}
GID: {{download.gid}}
Dir: {{download.dir}}
- Size: {{download.totalLength}}
- Downloaded: {{download.completedLength}}
+ Size: {{download.totalLength | blength}}
+ Downloaded: {{download.completedLength | blength}}
Num of Pieces: {{download.numPieces}}
- Piece Length: {{download.pieceLength}}
- ETA: {{download.eta}}
- Down Speed: {{download.downloadSpeed}}
+ Piece Length: {{download.pieceLength | blength}}
+ ETA: {{download.eta | time}}
+ Down Speed: {{download.downloadSpeed | bspeed}}
- Upload Speed: {{download.uploadSpeed}}
- Upload Length: {{download.uploadLength}}
+ Upload Speed: {{download.uploadSpeed | bspeed}}
+ Upload Length: {{download.uploadLength | blength}}
Connections: {{download.connections}}
Download Files
- - {{file.path}} ({{file.length}})
+ - {{file.path}} ({{file.length | blength}})
@@ -274,7 +278,6 @@
-
diff --git a/js/ctrls/download.js b/js/ctrls/download.js
index 117ad4a..cc6bf59 100644
--- a/js/ctrls/download.js
+++ b/js/ctrls/download.js
@@ -41,37 +41,23 @@ function(scope, rpc, utils) {
scope.getCtx = function(d, ctx) {
ctx = ctx || {};
- ctx.status = d.status;
- ctx.bitfield = d.bitfield;
- ctx.gid = d.gid;
- ctx.numPieces = d.numPieces;
- ctx.connections = d.connections;
- ctx.dir = d.dir.replace(/\\/g, '/');
+ _.each([
+ 'totalLength', 'completedLength', 'uploadLength',
+ 'pieceLength', 'downloadSpeed', 'uploadSpeed',
+ 'status', 'gid', 'bitfield', 'numPieces', 'connections'
+ ], function(e) {
+ ctx[e] = d[e];
+ });
+ ctx.dir = d.dir.replace(/\\/g, '/');
ctx.files = _.map(d.files, function(e) {
- e.length = utils.changeLength(e.length, "B");
e.path = e.path.replace(/\\/g, '/').replace(ctx.dir, '.');
return e;
});
- _.each(['downloadSpeed', 'uploadSpeed'], function(e) {
- ctx[e] = utils.changeLength(d[e], 'B/s');
- });
- _.each([
- 'totalLength', /*'remainingLength',*/ 'completedLength',
- 'uploadLength', 'pieceLength'
- ], function(e) {
- ctx[e] = utils.changeLength(d[e], 'B');
- });
- // raw data for graphs
- ctx.dspeed = d.downloadSpeed;
- ctx.uspeed = d.uploadSpeed;
-
- ctx.eta = utils.changeTime(
- (d.totalLength-d.completedLength) / d.downloadSpeed
- );
+ ctx.eta = (d.totalLength-d.completedLength) / d.downloadSpeed;
var percentage = (d.completedLength / d.totalLength)*100;
percentage = percentage.toFixed(2);
diff --git a/js/ctrls/modal.js b/js/ctrls/modal.js
index 84fc87a..95aedac 100644
--- a/js/ctrls/modal.js
+++ b/js/ctrls/modal.js
@@ -1,4 +1,3 @@
-
app.controller('ModalCtrl', ['$scope', function(scope) {
}]);
diff --git a/js/directives/dgraph.js b/js/directives/dgraph.js
index 5b3feed..b024a27 100644
--- a/js/directives/dgraph.js
+++ b/js/directives/dgraph.js
@@ -1,5 +1,5 @@
-app.directive('dgraph', ['$', '$utils', function($, utils) {
+app.directive('dgraph', ['$', '$filter', function($, filter) {
return function(scope, elem, attrs) {
@@ -30,7 +30,7 @@ app.directive('dgraph', ['$', '$utils', function($, utils) {
},
yaxis: {
tickFormatter: function(val, axis) {
- return utils.changeLength(val, "B/s");
+ return filter('bspeed')(val);
}
,
min: 0
diff --git a/js/filters/bytes.js b/js/filters/bytes.js
new file mode 100644
index 0000000..37ac14c
--- /dev/null
+++ b/js/filters/bytes.js
@@ -0,0 +1,34 @@
+app.filter('changeLength', function() {
+ return function(len, pref) {
+ len = parseFloat(len);
+ if(len <= (1<<10)) return len.toFixed(1) + " " + pref;
+ else if(len <= (1<<20)) return (len/(1<<10)).toFixed(1) + " K" + pref;
+ else if(len <= (1<<30)) return (len/(1<<20)).toFixed(1) + " M" + pref;
+ else return (len/(1<<30)).toFixed(1) + " G" + pref;
+ };
+});
+
+app.filter('blength', ['$filter', function(filter) {
+ return function(len) {
+ return filter('changeLength')(len, 'B');
+ };
+}]);
+
+app.filter('bspeed', ['$filter', function(filter) {
+ return function(speed) {
+ return filter('changeLength')(speed, 'B/s');
+ };
+}]);
+
+app.filter('time', function() {
+ return function(time) {
+ time = parseFloat(time);
+ if (isNaN(time) || !isFinite(time)) return " infinite";
+ if (!time) return " infinite";
+ if (time < 60) return time.toFixed(2) + " s";
+ else if (time < 60*60) return (time/60).toFixed(2) + " min";
+ else if (time < 60*60*24) return (time/(60*60)).toFixed(2) + " hours";
+ else return (time/(60*60*24)).toFixed(2) + " days!";
+ };
+});
+
diff --git a/js/services/utils.js b/js/services/utils.js
index 525f92e..9d3f4e0 100644
--- a/js/services/utils.js
+++ b/js/services/utils.js
@@ -38,26 +38,6 @@ app.factory('$utils', function() {
return dest;
},
- // change time units
- changeTime: function(time) {
- time = parseFloat(time);
- if (isNaN(time) || !isFinite(time)) return " infinite";
- if (!time) return " infinite";
- if (time < 60) return time.toFixed(2) + " s";
- else if (time < 60*60) return (time/60).toFixed(2) + " min";
- else if (time < 60*60*24) return (time/(60*60)).toFixed(2) + " hours";
- else return (time/(60*60*24)).toFixed(2) + " days!";
- },
-
- // change length units
- changeLength: function(len, pref) {
- len = parseFloat(len);
- if(len <= (1<<10)) return len.toFixed(1) + " " + pref;
- else if(len <= (1<<20)) return (len/(1<<10)).toFixed(1) + " K" + pref;
- else if(len <= (1<<30)) return (len/(1<<20)).toFixed(1) + " M" + pref;
- else return (len/(1<<30)).toFixed(1) + " G" + pref;
- },
-
// get download chunks from aria2 bitfield
getChunksFromHex: function(bitfield, numOfPieces) {
var chunks = [], len = 0, numPieces = parseInt(numOfPieces);