diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-03-18 19:04:48 +0100 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-03-18 19:04:48 +0100 |
commit | 5d32c05eb764beed8a84dec1e91e0f8a8060899d (patch) | |
tree | d4d71b48908c097bde2a3ec9c7c2b80d54b5eccd /module/web/static/js | |
parent | render download progress (diff) | |
download | pyload-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.js | 2 | ||||
-rw-r--r-- | module/web/static/js/models/File.js | 3 | ||||
-rw-r--r-- | module/web/static/js/models/Progress.js | 11 | ||||
-rw-r--r-- | module/web/static/js/views/headerView.js | 12 |
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> " + 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(); }, |