summaryrefslogtreecommitdiffstats
path: root/module/web/static/js
diff options
context:
space:
mode:
Diffstat (limited to 'module/web/static/js')
-rw-r--r--module/web/static/js/models/Account.js20
-rw-r--r--module/web/static/js/views/accounts/accountListView.js4
-rw-r--r--module/web/static/js/views/accounts/accountModal.js13
-rw-r--r--module/web/static/js/views/accounts/accountView.js13
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;
}
});