summaryrefslogtreecommitdiffstats
path: root/module/web/app/scripts/views/accounts/accountListView.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/views/accounts/accountListView.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/views/accounts/accountListView.js')
-rw-r--r--module/web/app/scripts/views/accounts/accountListView.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/module/web/app/scripts/views/accounts/accountListView.js b/module/web/app/scripts/views/accounts/accountListView.js
new file mode 100644
index 000000000..4eb5bfe7d
--- /dev/null
+++ b/module/web/app/scripts/views/accounts/accountListView.js
@@ -0,0 +1,52 @@
+define(['jquery', 'underscore', 'backbone', 'app', 'collections/AccountList', './accountView',
+ 'hbs!tpl/accounts/layout', 'hbs!tpl/accounts/actionbar'],
+ function($, _, Backbone, App, AccountList, accountView, template, templateBar) {
+ 'use strict';
+
+ // Renders settings over view page
+ return Backbone.Marionette.CollectionView.extend({
+
+ itemView: accountView,
+ template: template,
+
+ collection: null,
+ modal: null,
+
+ initialize: function() {
+ this.actionbar = Backbone.Marionette.ItemView.extend({
+ template: templateBar,
+ events: {
+ 'click .btn': 'addAccount'
+ },
+ addAccount: _.bind(this.addAccount, this)
+ });
+
+ this.collection = new AccountList();
+ this.update();
+
+ this.listenTo(App.vent, 'accounts:updated', this.update);
+ },
+
+ update: function() {
+ this.collection.fetch();
+ },
+
+ onBeforeRender: function() {
+ this.$el.html(template());
+ },
+
+ appendHtml: function(collectionView, itemView, index) {
+ this.$('.account-list').append(itemView.el);
+ },
+
+ addAccount: function() {
+ var self = this;
+ _.requireOnce(['views/accounts/accountModal'], function(Modal) {
+ if (self.modal === null)
+ self.modal = new Modal();
+
+ self.modal.show();
+ });
+ }
+ });
+ }); \ No newline at end of file