summaryrefslogtreecommitdiffstats
path: root/module/web/static/js/views/dashboard/packageView.js
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-03-24 21:27:43 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-03-24 21:27:43 +0100
commit7b4c75f0dd755e28fcffc0e4fdd05452458a3b09 (patch)
tree43ef5fe76ff5ff235cc52b79f16b9a8b6047bca8 /module/web/static/js/views/dashboard/packageView.js
parentMerge remote-tracking branch 'origin/stable' (diff)
downloadpyload-7b4c75f0dd755e28fcffc0e4fdd05452458a3b09.tar.xz
added view type for input fields
Diffstat (limited to 'module/web/static/js/views/dashboard/packageView.js')
-rw-r--r--module/web/static/js/views/dashboard/packageView.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/module/web/static/js/views/dashboard/packageView.js b/module/web/static/js/views/dashboard/packageView.js
new file mode 100644
index 000000000..547c1470d
--- /dev/null
+++ b/module/web/static/js/views/dashboard/packageView.js
@@ -0,0 +1,74 @@
+define(['jquery', 'app', 'views/abstract/itemView', 'underscore'],
+ function($, App, itemView, _) {
+
+ // Renders a single package item
+ return itemView.extend({
+
+ tagName: 'li',
+ className: 'package-view',
+ template: _.compile($("#template-package").html()),
+ events: {
+ 'click .package-name, .btn-open': 'open',
+ 'click .iconf-refresh': 'restart',
+ 'click .select': 'select',
+ 'click .btn-delete': 'deleteItem'
+ },
+
+ // Ul for child packages (unused)
+ ul: null,
+ // Currently unused
+ expanded: false,
+
+ initialize: function() {
+ this.listenTo(this.model, 'filter:added', this.hide);
+ this.listenTo(this.model, 'filter:removed', this.show);
+ this.listenTo(this.model, 'change', this.render);
+ this.listenTo(this.model, 'remove', this.unrender);
+
+ // Clear drop down menu
+ var self = this;
+ this.$el.on('mouseleave', function() {
+ self.$('.dropdown-menu').parent().removeClass('open');
+ });
+ },
+
+ onDestroy: function() {
+ },
+
+ // Render everything, optional only the fileViews
+ render: function() {
+ this.$el.html(this.template(this.model.toJSON()));
+ this.$el.initTooltips();
+
+ return this;
+ },
+
+ unrender: function() {
+ itemView.prototype.unrender.apply(this);
+
+ // TODO: display other package
+ App.vent.trigger('dashboard:loading', null);
+ },
+
+
+ // TODO
+ // Toggle expanding of packages
+ expand: function(e) {
+ e.preventDefault();
+ },
+
+ open: function(e) {
+ e.preventDefault();
+ App.dashboard.openPackage(this.model);
+ },
+
+ select: function(e) {
+ e.preventDefault();
+ var checked = this.$('.select').hasClass('iconf-check');
+ // toggle class immediately, so no re-render needed
+ this.model.set('selected', !checked, {silent: true});
+ this.$('.select').toggleClass('iconf-check').toggleClass('iconf-check-empty');
+ App.vent.trigger('package:selection');
+ }
+ });
+ }); \ No newline at end of file