summaryrefslogtreecommitdiffstats
path: root/pyload/web/app/scripts/models/Progress.js
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/web/app/scripts/models/Progress.js')
-rw-r--r--pyload/web/app/scripts/models/Progress.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/pyload/web/app/scripts/models/Progress.js b/pyload/web/app/scripts/models/Progress.js
new file mode 100644
index 000000000..b0bbb684d
--- /dev/null
+++ b/pyload/web/app/scripts/models/Progress.js
@@ -0,0 +1,50 @@
+define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backbone, _, Api) {
+ 'use strict';
+
+ return Backbone.Model.extend({
+
+ // generated, not submitted
+ idAttribute: 'pid',
+
+ defaults: {
+ pid: -1,
+ plugin: null,
+ name: null,
+ statusmsg: -1,
+ eta: -1,
+ done: -1,
+ total: -1,
+ 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() {
+
+ },
+
+ // Any time a model attribute is set, this method is called
+ validate: function(attrs) {
+
+ },
+
+ toJSON: function(options) {
+ var obj = Backbone.Model.prototype.toJSON.call(this, options);
+ obj.percent = this.getPercent();
+ obj.downloading = this.isDownload() && this.get('download').status === Api.DownloadStatus.Downloading;
+
+ return obj;
+ },
+
+ isDownload : function() {
+ return this.has('download');
+ }
+
+ });
+
+}); \ No newline at end of file