summaryrefslogtreecommitdiffstats
path: root/module/web/static/js
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-03-18 19:04:48 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-03-18 19:04:48 +0100
commit5d32c05eb764beed8a84dec1e91e0f8a8060899d (patch)
treed4d71b48908c097bde2a3ec9c7c2b80d54b5eccd /module/web/static/js
parentrender download progress (diff)
downloadpyload-5d32c05eb764beed8a84dec1e91e0f8a8060899d.tar.xz
added ReadWrite lock, render file progress on dashboard
Diffstat (limited to 'module/web/static/js')
-rw-r--r--module/web/static/js/helpers/fileHelper.js2
-rw-r--r--module/web/static/js/models/File.js3
-rw-r--r--module/web/static/js/models/Progress.js11
-rw-r--r--module/web/static/js/views/headerView.js12
4 files changed, 21 insertions, 7 deletions
diff --git a/module/web/static/js/helpers/fileHelper.js b/module/web/static/js/helpers/fileHelper.js
index d7cf03f53..dde831bdd 100644
--- a/module/web/static/js/helpers/fileHelper.js
+++ b/module/web/static/js/helpers/fileHelper.js
@@ -37,7 +37,7 @@ define('helpers/fileHelper', ['handlebars', 'utils/apitypes'],
} else if (file.finished)
s = "<i class='iconf-ok'></i>&nbsp;" + msg;
else if(file.downloading)
- s= "<div class='progress'><div class='bar' style='width: 50%'></div></div>";
+ s= "<div class='progress'><div class='bar' style='width: " + file.progress + "%'></div></div>";
else
s = msg;
diff --git a/module/web/static/js/models/File.js b/module/web/static/js/models/File.js
index 2ac6c05f5..22ff231cc 100644
--- a/module/web/static/js/models/File.js
+++ b/module/web/static/js/models/File.js
@@ -22,7 +22,8 @@ define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backb
// UI attributes
selected: false,
- visible: true
+ visible: true,
+ progress: 0
},
diff --git a/module/web/static/js/models/Progress.js b/module/web/static/js/models/Progress.js
index c6a2fc4d1..d2d54bdb4 100644
--- a/module/web/static/js/models/Progress.js
+++ b/module/web/static/js/models/Progress.js
@@ -16,6 +16,12 @@ define(['jquery', 'backbone', 'underscore'], function($, Backbone, _) {
download: null
},
+ getPercent: function() {
+ if (this.get('total') > 0)
+ return Math.round(this.get('done') * 100 / this.get('total'));
+ return 0;
+ },
+
// Model Constructor
initialize: function() {
@@ -28,10 +34,7 @@ define(['jquery', 'backbone', 'underscore'], function($, Backbone, _) {
toJSON: function(options) {
var obj = Backbone.Model.prototype.toJSON.call(this, options);
- if (obj.total > 0)
- obj.percent = Math.round(obj.done * 100 / obj.total);
- else
- obj.percent = 0;
+ obj.percent = this.getPercent();
return obj;
},
diff --git a/module/web/static/js/views/headerView.js b/module/web/static/js/views/headerView.js
index dddae4705..d9c56b332 100644
--- a/module/web/static/js/views/headerView.js
+++ b/module/web/static/js/views/headerView.js
@@ -6,7 +6,7 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'colle
el: 'header',
events: {
- 'click i.iconf-list': 'toggle_taskList',
+ 'click .iconf-list': 'toggle_taskList',
'click .popover .close': 'hide_taskList',
'click .btn-grabber': 'open_grabber'
},
@@ -169,6 +169,7 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'colle
},
onProgressUpdate: function(progress) {
+ // generate a unique id
_.each(progress, function(prog) {
if (prog.download)
prog.pid = prog.download.fid;
@@ -177,6 +178,15 @@ define(['jquery', 'underscore', 'backbone', 'app', 'models/ServerStatus', 'colle
});
this.progressList.update(progress);
+ // update currently open files with progress
+ this.progressList.each(function(prog) {
+ if(prog.isDownload() && App.dashboard.files){
+ var file = App.dashboard.files.get(prog.get('download').fid);
+ if (file)
+ file.set('progress', prog.getPercent());
+ }
+ });
+ // TODO: only render when changed
this.render();
},