From a03ece96ae83e8fedb27fdb297c52a8e6b111d55 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sat, 1 Sep 2012 21:00:38 +0200 Subject: some functionality for the views --- module/web/static/js/views/packageView.js | 45 +++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 module/web/static/js/views/packageView.js (limited to 'module/web/static/js/views/packageView.js') diff --git a/module/web/static/js/views/packageView.js b/module/web/static/js/views/packageView.js new file mode 100644 index 000000000..a2e0abf31 --- /dev/null +++ b/module/web/static/js/views/packageView.js @@ -0,0 +1,45 @@ +define(['jquery', 'backbone', 'underscore', 'views/fileView'], function($, Backbone, _, fileView) { + + // Renders a single package item + return Backbone.View.extend({ + + tagName: 'li', + events: { + 'click .load': 'load', + 'click .delete': 'delete' + }, + + initialize: function() { + this.model.on('change', this.render, this); + this.model.on('remove', this.unrender, this); + }, + + render: function() { + this.$el.html('Package ' + this.model.get('pid') + ': ' + this.model.get('name')); + this.$el.append($(' Load')); + this.$el.append($(' Delete')); + + if (this.model.isLoaded()) { + var ul = $(''); + this.model.get('files').each(function(file) { + ul.append(new fileView({model: file}).render().el); + }); + this.$el.append(ul); + } + return this; + }, + + unrender: function() { + this.$el.remove(); + }, + + load: function() { + this.model.fetch(); + }, + + delete: function() { + this.model.destroy(); + } + + }); +}); \ No newline at end of file -- cgit v1.2.3 From 288b6190121618090107b3c0bb4f9e3539608d3b Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sun, 2 Sep 2012 19:22:48 +0200 Subject: modal dialog --- module/web/static/js/views/packageView.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'module/web/static/js/views/packageView.js') diff --git a/module/web/static/js/views/packageView.js b/module/web/static/js/views/packageView.js index a2e0abf31..b820b9ba8 100644 --- a/module/web/static/js/views/packageView.js +++ b/module/web/static/js/views/packageView.js @@ -1,4 +1,5 @@ -define(['jquery', 'backbone', 'underscore', 'views/fileView'], function($, Backbone, _, fileView) { +define(['jquery', 'backbone', 'underscore', 'views/fileView', 'views/modal/modalView'], + function($, Backbone, _, fileView, modalView) { // Renders a single package item return Backbone.View.extend({ @@ -6,9 +7,12 @@ define(['jquery', 'backbone', 'underscore', 'views/fileView'], function($, Backb tagName: 'li', events: { 'click .load': 'load', - 'click .delete': 'delete' + 'click .delete': 'delete', + 'click .show': 'show' }, + modal: null, + initialize: function() { this.model.on('change', this.render, this); this.model.on('remove', this.unrender, this); @@ -18,6 +22,7 @@ define(['jquery', 'backbone', 'underscore', 'views/fileView'], function($, Backb this.$el.html('Package ' + this.model.get('pid') + ': ' + this.model.get('name')); this.$el.append($(' Load')); this.$el.append($(' Delete')); + this.$el.append($(' Show')); if (this.model.isLoaded()) { var ul = $(''); @@ -39,6 +44,13 @@ define(['jquery', 'backbone', 'underscore', 'views/fileView'], function($, Backb delete: function() { this.model.destroy(); + }, + + show: function() { + if (this.modal === null) + this.modal = new modalView(); + + this.modal.show(); } }); -- cgit v1.2.3 From 6a8303b004e1976739371431aa7358c672ad7313 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sun, 16 Sep 2012 21:45:10 +0200 Subject: added bootstrap --- module/web/static/js/views/packageView.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'module/web/static/js/views/packageView.js') diff --git a/module/web/static/js/views/packageView.js b/module/web/static/js/views/packageView.js index b820b9ba8..171325d1f 100644 --- a/module/web/static/js/views/packageView.js +++ b/module/web/static/js/views/packageView.js @@ -1,5 +1,5 @@ -define(['jquery', 'backbone', 'underscore', 'views/fileView', 'views/modal/modalView'], - function($, Backbone, _, fileView, modalView) { +define(['jquery', 'backbone', 'underscore', 'views/fileView', 'utils/lazyRequire'], + function($, Backbone, _, fileView, lazyLoader) { // Renders a single package item return Backbone.View.extend({ @@ -8,10 +8,11 @@ define(['jquery', 'backbone', 'underscore', 'views/fileView', 'views/modal/modal events: { 'click .load': 'load', 'click .delete': 'delete', - 'click .show': 'show' + 'click .show-dialog': 'show' }, modal: null, + requireOnce: lazyLoader.once(), initialize: function() { this.model.on('change', this.render, this); @@ -22,7 +23,7 @@ define(['jquery', 'backbone', 'underscore', 'views/fileView', 'views/modal/modal this.$el.html('Package ' + this.model.get('pid') + ': ' + this.model.get('name')); this.$el.append($(' Load')); this.$el.append($(' Delete')); - this.$el.append($(' Show')); + this.$el.append($(' Show')); if (this.model.isLoaded()) { var ul = $('
    '); @@ -47,11 +48,13 @@ define(['jquery', 'backbone', 'underscore', 'views/fileView', 'views/modal/modal }, show: function() { - if (this.modal === null) - this.modal = new modalView(); - - this.modal.show(); - } - + var self = this; + this.requireOnce(['views/modal/modalView'], function(modalView){ + if (self.modal === null) + self.modal = new modalView(); + + self.modal.show(); + }); + } }); }); \ No newline at end of file -- cgit v1.2.3