summaryrefslogtreecommitdiffstats
path: root/module/web/static/js/models
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-03-20 21:39:30 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-03-20 21:39:30 +0100
commit63cef4c7d641ffddaeabcd768020674e2681ba05 (patch)
tree10b9ee50b927a7673d93db15b896a15a1012f482 /module/web/static/js/models
parentadded ReadWrite lock, render file progress on dashboard (diff)
downloadpyload-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.js36
-rw-r--r--module/web/static/js/models/Package.js36
-rw-r--r--module/web/static/js/models/Progress.js6
-rw-r--r--module/web/static/js/models/TreeCollection.js12
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);
},