summaryrefslogtreecommitdiffstats
path: root/module/web/app/scripts/models/TreeCollection.js
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-06-08 17:37:43 +0200
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-06-08 17:37:44 +0200
commit2cf160d497e501bf254bd8be054c0f5880ab90ca (patch)
tree03a720b6142cc03fe7ef258fa8d17da92b30a462 /module/web/app/scripts/models/TreeCollection.js
parentMerge pull request #151 from vuolter/invertedconf (diff)
downloadpyload-2cf160d497e501bf254bd8be054c0f5880ab90ca.tar.xz
restructured webui to single-page-app, removed jinja
Diffstat (limited to 'module/web/app/scripts/models/TreeCollection.js')
-rw-r--r--module/web/app/scripts/models/TreeCollection.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/module/web/app/scripts/models/TreeCollection.js b/module/web/app/scripts/models/TreeCollection.js
new file mode 100644
index 000000000..a528854b5
--- /dev/null
+++ b/module/web/app/scripts/models/TreeCollection.js
@@ -0,0 +1,49 @@
+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
+ return Backbone.Model.extend({
+
+ defaults : {
+ root: null,
+ packages: null,
+ files: null
+ },
+
+ initialize: function() {
+
+ },
+
+ fetch: function(options) {
+ options || (options = {});
+ var pid = options.pid || -1;
+
+ options = App.apiRequest(
+ 'getFileTree/' + pid,
+ {full: false},
+ options);
+
+ console.log('Fetching package tree ' + pid);
+ return Backbone.Model.prototype.fetch.call(this, options);
+ },
+
+ // Parse the response and updates the collections
+ parse: function(resp) {
+ var ret = {};
+ if (!this.has('packages'))
+ ret.packages = new PackageList(_.values(resp.packages));
+ else
+ this.get('packages').set(_.values(resp.packages));
+
+ if (!this.has('files'))
+ ret.files = new FileList(_.values(resp.files));
+ else
+ this.get('files').set(_.values(resp.files));
+
+ ret.root = new Package(resp.root);
+ return ret;
+ }
+
+ });
+}); \ No newline at end of file