summaryrefslogtreecommitdiffstats
path: root/pyload/web/app/scripts/views/progressView.js
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/web/app/scripts/views/progressView.js')
-rw-r--r--pyload/web/app/scripts/views/progressView.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/pyload/web/app/scripts/views/progressView.js b/pyload/web/app/scripts/views/progressView.js
new file mode 100644
index 000000000..7b9dbb74b
--- /dev/null
+++ b/pyload/web/app/scripts/views/progressView.js
@@ -0,0 +1,46 @@
+define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes', 'views/abstract/itemView',
+ 'hbs!tpl/header/progress', 'hbs!tpl/header/progressStatus', 'helpers/pluginIcon'],
+ function($, Backbone, _, App, Api, ItemView, template, templateStatus, pluginIcon) {
+ 'use strict';
+
+ // Renders single file item
+ return ItemView.extend({
+
+ idAttribute: 'pid',
+ tagName: 'li',
+ template: template,
+ events: {
+ },
+
+ // Last name
+ name: null,
+
+ initialize: function() {
+ this.listenTo(this.model, 'change', this.update);
+ this.listenTo(this.model, 'remove', this.unrender);
+ },
+
+ onDestroy: function() {
+ },
+
+ // Update html without re-rendering
+ update: function() {
+ if (this.name !== this.model.get('name')) {
+ this.name = this.model.get('name');
+ this.render();
+ }
+
+ this.$('.bar').width(this.model.getPercent() + '%');
+ this.$('.progress-status').html(templateStatus(this.model.toJSON()));
+ },
+
+ render: function() {
+ // TODO: icon
+ // TODO: other states
+ // TODO: non download progress
+ this.$el.css('background-image', 'url(' + pluginIcon('todo') + ')');
+ this.$el.html(this.template(this.model.toJSON()));
+ return this;
+ }
+ });
+ }); \ No newline at end of file