summaryrefslogtreecommitdiffstats
path: root/module/web/static/js/models
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2012-12-23 20:10:01 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2012-12-23 20:10:01 +0100
commitb18fa59e40ebe9c03f81d49cf53a85bc728de8a7 (patch)
treecf28b8bb661cbb95592be89177cf82a325a0f6ea /module/web/static/js/models
parentcleaned the settings page (diff)
downloadpyload-b18fa59e40ebe9c03f81d49cf53a85bc728de8a7.tar.xz
proper selecting, expanding and rendering of packageViews
Diffstat (limited to 'module/web/static/js/models')
-rw-r--r--module/web/static/js/models/Package.js21
-rw-r--r--module/web/static/js/models/TreeCollection.js20
2 files changed, 26 insertions, 15 deletions
diff --git a/module/web/static/js/models/Package.js b/module/web/static/js/models/Package.js
index 64b066dbc..7539b0673 100644
--- a/module/web/static/js/models/Package.js
+++ b/module/web/static/js/models/Package.js
@@ -22,7 +22,9 @@ define(['jquery', 'backbone', 'underscore', 'collections/FileList', 'require'],
fids: null,
pids: null,
files: null, // Collection
- packs: null // Collection
+ packs: null, // Collection
+
+ selected: false // For Checkbox
},
// Model Constructor
@@ -51,16 +53,25 @@ define(['jquery', 'backbone', 'underscore', 'collections/FileList', 'require'],
return Backbone.Model.prototype.destroy.call(this, options);
},
- parse: function(resp, xhr) {
+ parse: function(resp) {
// Package is loaded from tree collection
if (_.has(resp, 'root')) {
- resp.root.files = new FileList(_.values(resp.files));
+ if(!this.has('files'))
+ resp.root.files = new FileList(_.values(resp.files));
+ else
+ this.get('files').update(_.values(resp.files));
+
// circular dependencies needs to be avoided
var PackageList = require('collections/PackageList');
- resp.root.packs = new PackageList(_.values(resp.packages));
+
+ if (!this.has('packs'))
+ resp.root.packs = new PackageList(_.values(resp.packages));
+ else
+ this.get('packs').update(_.values(resp.packages));
+
return resp.root;
}
- return Backbone.model.prototype.fetch.call(this, resp, xhr);
+ return Backbone.model.prototype.parse.call(this, resp);
},
// Package data is complete when it contains collection for containing files or packs
diff --git a/module/web/static/js/models/TreeCollection.js b/module/web/static/js/models/TreeCollection.js
index 27d2cefce..5949415c2 100644
--- a/module/web/static/js/models/TreeCollection.js
+++ b/module/web/static/js/models/TreeCollection.js
@@ -27,20 +27,20 @@ define(['jquery', 'backbone', 'underscore', 'models/Package', 'collections/FileL
},
// Parse the response and updates the collections
- parse: function(resp, xhr) {
- if (this.get('packages') === null)
- this.set('packages', new PackageList(_.values(resp.packages)));
+ parse: function(resp) {
+ var ret = {};
+ if (!this.has('packages'))
+ ret.packages = new PackageList(_.values(resp.packages));
else
- this.packages.update(_.values(resp.packages));
+ this.get('files').update(_.values(resp.packages));
- if (this.get('files') === null)
- this.set('files', new FileList(_.values(resp.files)));
+ if (!this.has('files'))
+ ret.files = new FileList(_.values(resp.files));
else
- this.files.update(_.values(resp.files));
+ this.get('files').update(_.values(resp.files));
- return {
- root: new Package(resp.root)
- };
+ ret.root = new Package(resp.root);
+ return ret;
}
});