diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-03-20 21:39:30 +0100 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-03-20 21:39:30 +0100 |
commit | 63cef4c7d641ffddaeabcd768020674e2681ba05 (patch) | |
tree | 10b9ee50b927a7673d93db15b896a15a1012f482 /module/web/static/js/models | |
parent | added ReadWrite lock, render file progress on dashboard (diff) | |
download | pyload-63cef4c7d641ffddaeabcd768020674e2681ba05.tar.xz |
improved ui, render waiting files
Diffstat (limited to 'module/web/static/js/models')
-rw-r--r-- | module/web/static/js/models/File.js | 36 | ||||
-rw-r--r-- | module/web/static/js/models/Package.js | 36 | ||||
-rw-r--r-- | module/web/static/js/models/Progress.js | 6 | ||||
-rw-r--r-- | module/web/static/js/models/TreeCollection.js | 12 |
4 files changed, 56 insertions, 34 deletions
diff --git a/module/web/static/js/models/File.js b/module/web/static/js/models/File.js index 22ff231cc..524637cb4 100644 --- a/module/web/static/js/models/File.js +++ b/module/web/static/js/models/File.js @@ -1,4 +1,4 @@ -define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backbone, _, Api) { +define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes'], function($, Backbone, _, App, Api) { var Finished = [Api.DownloadStatus.Finished, Api.DownloadStatus.Skipped]; var Failed = [Api.DownloadStatus.Failed, Api.DownloadStatus.Aborted, Api.DownloadStatus.TempOffline, Api.DownloadStatus.Offline]; @@ -23,34 +23,44 @@ define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backb // UI attributes selected: false, visible: true, - progress: 0 + progress: 0, + eta: 0 }, - // Model Constructor initialize: function() { }, - fetch: function(options){ - options || (options = {}); - options.url = 'api/getFileInfo/' + this.get('fid'); + fetch: function(options) { + options = App.apiRequest( + 'getFileInfo', + {fid: this.get('fid')}, + options); return Backbone.Model.prototype.fetch.call(this, options); }, destroy: function(options) { - options || (options = {}); - // TODO: as post data - options.url = 'api/deleteFiles/[' + this.get('fid') + ']'; - options.type = "post"; + // also not working when using data + options = App.apiRequest( + 'deleteFiles/[' + this.get('fid') + ']', + null, options); + options.method = "post"; return Backbone.Model.prototype.destroy.call(this, options); }, + // Does not send a request to the server + destroyLocal: function(options) { + this.trigger('destroy', this, this.collection, options); + }, + restart: function(options) { - options || (options = {}); - options.url = 'api/restartFile/' + this.get('fid'); + options = App.apiRequest( + 'restartFile', + {fid: this.get('fid')}, + options); return $.ajax(options); }, @@ -60,7 +70,7 @@ define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backb }, - isDownload : function() { + isDownload: function() { return this.has('download'); }, diff --git a/module/web/static/js/models/Package.js b/module/web/static/js/models/Package.js index ba024381e..0b9efca10 100644 --- a/module/web/static/js/models/Package.js +++ b/module/web/static/js/models/Package.js @@ -1,5 +1,5 @@ -define(['jquery', 'backbone', 'underscore', 'collections/FileList', 'require'], - function($, Backbone, _, FileList, require) { +define(['jquery', 'backbone', 'underscore', 'app', 'collections/FileList', 'require'], + function($, Backbone, _, App, FileList, require) { return Backbone.Model.extend({ @@ -34,18 +34,20 @@ define(['jquery', 'backbone', 'underscore', 'collections/FileList', 'require'], // Changes url + method and delegates call to super class fetch: function(options) { - options || (options = {}); - options.url = 'api/getFileTree/' + this.get('pid') + '/false'; - options.type = "post"; + options = App.apiRequest( + 'getFileTree/' + this.get('pid'), + {full: false}, + options); return Backbone.Model.prototype.fetch.call(this, options); }, // Create a pseudo package und use search to populate data search: function(qry, options) { - options || (options = {}); - options.url = 'api/findFiles/"' + qry + '"'; - options.type = "post"; + options = App.apiRequest( + 'findFiles', + {pattern: qry}, + options); return Backbone.Model.prototype.fetch.call(this, options); }, @@ -55,18 +57,24 @@ define(['jquery', 'backbone', 'underscore', 'collections/FileList', 'require'], }, destroy: function(options) { - options || (options = {}); - // TODO: as post data - options.url = 'api/deletePackages/[' + this.get('pid') + ']'; - options.type = "post"; + // TODO: Not working when using data?, array seems to break it + options = App.apiRequest( + 'deletePackages/[' + this.get('pid') + ']', + null, options); + options.method = 'post'; + + console.log(options); return Backbone.Model.prototype.destroy.call(this, options); }, restart: function(options) { - options || (options = {}); + options = App.apiRequest( + 'restartPackage', + {pid: this.get('pid')}, + options); + var self = this; - options.url = 'api/restartPackage/' + this.get('pid'); options.success = function() { self.fetch(); }; diff --git a/module/web/static/js/models/Progress.js b/module/web/static/js/models/Progress.js index d2d54bdb4..87e7b350b 100644 --- a/module/web/static/js/models/Progress.js +++ b/module/web/static/js/models/Progress.js @@ -1,4 +1,4 @@ -define(['jquery', 'backbone', 'underscore'], function($, Backbone, _) { +define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backbone, _, Api) { return Backbone.Model.extend({ @@ -35,6 +35,10 @@ define(['jquery', 'backbone', 'underscore'], function($, Backbone, _) { toJSON: function(options) { var obj = Backbone.Model.prototype.toJSON.call(this, options); obj.percent = this.getPercent(); + if (this.isDownload() && this.get('download').status === Api.DownloadStatus.Downloading) + obj.downloading = true; + else + obj.downloading = false; return obj; }, diff --git a/module/web/static/js/models/TreeCollection.js b/module/web/static/js/models/TreeCollection.js index 7bcc7bd5b..bf14478ce 100644 --- a/module/web/static/js/models/TreeCollection.js +++ b/module/web/static/js/models/TreeCollection.js @@ -1,5 +1,5 @@ -define(['jquery', 'backbone', 'underscore', 'models/Package', 'collections/FileList', 'collections/PackageList'], - function($, Backbone, _, Package, FileList, PackageList) { +define(['jquery', 'backbone', 'underscore', 'app', 'models/Package', 'collections/FileList', 'collections/PackageList'], + function($, Backbone, _, App, Package, FileList, PackageList) { // TreeCollection // A Model and not a collection, aggregates other collections @@ -19,12 +19,12 @@ define(['jquery', 'backbone', 'underscore', 'models/Package', 'collections/FileL options || (options = {}); var pid = options.pid || -1; - // TODO: more options possible - options.url = 'api/getFileTree/' + pid + '/false'; - options.type = "post"; + options = App.apiRequest( + 'getFileTree/' + pid, + {full: false}, + options); console.log('Fetching package tree ' + pid); - return Backbone.Model.prototype.fetch.call(this, options); }, |