From 556daf426cc0ec87c378f3754b4b3320a8fd697d Mon Sep 17 00:00:00 2001 From: RaNaN Date: Mon, 24 Dec 2012 12:53:22 +0100 Subject: connected link add dialog, improved tree rendering --- module/web/static/js/models/TreeCollection.js | 4 +- module/web/static/js/views/linkGrabberModal.js | 31 +++++++++-- module/web/static/js/views/packageTreeView.js | 73 ++++++++++++-------------- 3 files changed, 64 insertions(+), 44 deletions(-) (limited to 'module/web/static/js') diff --git a/module/web/static/js/models/TreeCollection.js b/module/web/static/js/models/TreeCollection.js index 5949415c2..7bcc7bd5b 100644 --- a/module/web/static/js/models/TreeCollection.js +++ b/module/web/static/js/models/TreeCollection.js @@ -23,6 +23,8 @@ define(['jquery', 'backbone', 'underscore', 'models/Package', 'collections/FileL options.url = 'api/getFileTree/' + pid + '/false'; options.type = "post"; + console.log('Fetching package tree ' + pid); + return Backbone.Model.prototype.fetch.call(this, options); }, @@ -32,7 +34,7 @@ define(['jquery', 'backbone', 'underscore', 'models/Package', 'collections/FileL if (!this.has('packages')) ret.packages = new PackageList(_.values(resp.packages)); else - this.get('files').update(_.values(resp.packages)); + this.get('packages').update(_.values(resp.packages)); if (!this.has('files')) ret.files = new FileList(_.values(resp.files)); diff --git a/module/web/static/js/views/linkGrabberModal.js b/module/web/static/js/views/linkGrabberModal.js index b5c91baa6..13900f222 100644 --- a/module/web/static/js/views/linkGrabberModal.js +++ b/module/web/static/js/views/linkGrabberModal.js @@ -1,9 +1,11 @@ -define(['jquery', 'underscore', 'views/abstract/modalView', 'text!tpl/default/linkgrabber.html'], - function($, _, modalView, template) { - +define(['jquery', 'underscore', 'app', 'views/abstract/modalView', 'text!tpl/default/linkgrabber.html'], + function($, _, App, modalView, template) { + // Modal dialog for package adding - triggers package:added when package was added return modalView.extend({ events: { + 'click .btn-success': 'addPackage', + 'keypress #inputPackageName': 'addOnEnter' }, template: _.compile(template), @@ -15,6 +17,29 @@ define(['jquery', 'underscore', 'views/abstract/modalView', 'text!tpl/default/li renderContent: function() { return $('

Content!

'); + }, + + addOnEnter: function(e) { + if (e.keyCode != 13) return; + this.addPackage(e); + }, + + addPackage: function(e) { + var self = this; + var settings = { + type: 'POST', + data: { + name: JSON.stringify($('#inputPackageName').val()), + links: JSON.stringify(['http://download.pyload.org/random.bin', 'invalid link']) + }, + success: function() { + App.vent.trigger('package:added'); + self.hide(); + } + }; + + $.ajax('api/addPackage', settings); + $('#inputPackageName').val(''); } }); diff --git a/module/web/static/js/views/packageTreeView.js b/module/web/static/js/views/packageTreeView.js index 92e4d78a0..7491a285e 100644 --- a/module/web/static/js/views/packageTreeView.js +++ b/module/web/static/js/views/packageTreeView.js @@ -1,5 +1,5 @@ -define(['jquery', 'backbone', 'underscore', 'models/TreeCollection', 'views/packageView', 'views/fileView'], - function($, Backbone, _, TreeCollection, packageView, fileView) { +define(['jquery', 'backbone', 'underscore', 'app', 'models/TreeCollection', 'views/packageView', 'views/fileView'], + function($, Backbone, _, App, TreeCollection, packageView, fileView) { // Renders whole PackageView return Backbone.View.extend({ @@ -7,20 +7,37 @@ define(['jquery', 'backbone', 'underscore', 'models/TreeCollection', 'views/pack el: '#content', events: { - 'click #add': 'addPackage', - 'keypress #name': 'addOnEnter', 'click #show_active': 'filter' }, + //