diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-03-31 18:32:13 +0200 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2013-03-31 18:32:13 +0200 |
commit | 9ea1ab90b4705ef4d5ce37ded36a214f276c0a18 (patch) | |
tree | 995539a44a25c54344639d5ade7aa3e48624ed97 /module/web/static/js | |
parent | added account page (diff) | |
download | pyload-9ea1ab90b4705ef4d5ce37ded36a214f276c0a18.tar.xz |
add and delete accounts, db will be resetted
Diffstat (limited to 'module/web/static/js')
-rw-r--r-- | module/web/static/js/models/Account.js | 20 | ||||
-rw-r--r-- | module/web/static/js/views/accounts/accountListView.js | 4 | ||||
-rw-r--r-- | module/web/static/js/views/accounts/accountModal.js | 13 | ||||
-rw-r--r-- | module/web/static/js/views/accounts/accountView.js | 13 |
4 files changed, 39 insertions, 11 deletions
diff --git a/module/web/static/js/models/Account.js b/module/web/static/js/models/Account.js index 55e63ac08..c6e023578 100644 --- a/module/web/static/js/models/Account.js +++ b/module/web/static/js/models/Account.js @@ -1,4 +1,4 @@ -define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backbone, _, Api) { +define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes'], function($, Backbone, _, App, Api) { return Backbone.Model.extend({ @@ -22,7 +22,6 @@ define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backb // Model Constructor initialize: function() { - }, // Any time a model attribute is set, this method is called @@ -30,8 +29,21 @@ define(['jquery', 'backbone', 'underscore', 'utils/apitypes'], function($, Backb }, - save: function(options){ - // TODO + save: function(options) { + options = App.apiRequest('updateAccountInfo', {account: this.toJSON()}, options); + return $.ajax(options); + }, + + destroy: function(options) { + options = App.apiRequest('removeAccount', {account: this.toJSON()}, options); + var self = this; + options.success = function() { + self.trigger('destroy', self, self.collection, options); + }; + + // TODO request is not dispatched +// return Backbone.Model.prototype.destroy.call(this, options); + return $.ajax(options); } }); diff --git a/module/web/static/js/views/accounts/accountListView.js b/module/web/static/js/views/accounts/accountListView.js index ea01f679e..68dffaa98 100644 --- a/module/web/static/js/views/accounts/accountListView.js +++ b/module/web/static/js/views/accounts/accountListView.js @@ -26,8 +26,10 @@ define(['jquery', 'underscore', 'backbone', 'app', 'collections/AccountList', '. render: function() { var self = this; + App.vent.trigger('accounts:destroyContent'); + // TODO trs cant' be animated this.accounts.each(function(account) { - self.content.append(new accountView({model: account}).render().el); + self.content.appendWithHeight(new accountView({model: account}).render().el); }); }, diff --git a/module/web/static/js/views/accounts/accountModal.js b/module/web/static/js/views/accounts/accountModal.js index 898b10a89..755ffd510 100644 --- a/module/web/static/js/views/accounts/accountModal.js +++ b/module/web/static/js/views/accounts/accountModal.js @@ -52,8 +52,17 @@ define(['jquery', 'underscore', 'app', 'views/abstract/modalView', 'text!tpl/def add: function(e) { e.stopPropagation(); if (this.select) { - var plugin = this.select.val(); - // TODO + var plugin = this.select.val(), + login = this.$('#login').val(), + password = this.$('#password').val(), + self = this; + + $.ajax(App.apiRequest('updateAccount', { + plugin: plugin, login: login, password: password + }, { success: function() { + App.accountView.refresh(); + self.hide(); + }})); } } }); diff --git a/module/web/static/js/views/accounts/accountView.js b/module/web/static/js/views/accounts/accountView.js index f310e4cc2..7d6306523 100644 --- a/module/web/static/js/views/accounts/accountView.js +++ b/module/web/static/js/views/accounts/accountView.js @@ -1,18 +1,23 @@ -define(['jquery', 'underscore', 'backbone', 'app'], - function($, _, Backbone, App) { +define(['jquery', 'underscore', 'backbone', 'app', '../abstract/itemView'], + function($, _, Backbone, App, itemView) { // Renders settings over view page - return Backbone.View.extend({ + return itemView.extend({ - el: "li", + el: "tr", + template: _.compile($('#template-account').html()), events: { + 'click .btn-danger': 'deleteItem' }, initialize: function() { + this.listenTo(this.model, 'remove', this.unrender); + this.listenTo(App.vent, 'accounts:destroyContent', this.destroy); }, render: function() { + this.$el.html(this.template(this.model.toJSON())); return this; } }); |