diff options
Diffstat (limited to 'base/tps-tomcat/shared/webapps/tps/js/token.js')
-rw-r--r-- | base/tps-tomcat/shared/webapps/tps/js/token.js | 143 |
1 files changed, 112 insertions, 31 deletions
diff --git a/base/tps-tomcat/shared/webapps/tps/js/token.js b/base/tps-tomcat/shared/webapps/tps/js/token.js index c4d0e0e3e..c3b1f21c6 100644 --- a/base/tps-tomcat/shared/webapps/tps/js/token.js +++ b/base/tps-tomcat/shared/webapps/tps/js/token.js @@ -97,29 +97,113 @@ var TokenCollection = Collection.extend({ } }); -var TokenTableItem = TableItem.extend({ +var TokenPage = EntryPage.extend({ initialize: function(options) { var self = this; - PropertiesTableItem.__super__.initialize.call(self, options); + TokenPage.__super__.initialize.call(self, options); + self.parentPage = options.parentPage; }, - open: function(td) { + setup: function() { var self = this; - var name = td.attr("name"); - if (name != "status") { - TokenTableItem.__super__.open.call(self, td); + TokenPage.__super__.setup.call(self); + + self.changeStatusLink = $("a[name='changeStatus']", self.menu); + + self.changeStatusLink.click(function(e) { + + var dialog = new Dialog({ + el: $("#token-status-dialog"), + title: "Change Token Status", + readonly: ["tokenID"], + actions: ["cancel", "save"] + }); + + dialog.entry = _.clone(self.model.attributes); + + dialog.handler("save", function() { + + // save changes + dialog.save(); + + // check if the status was changed + if (dialog.entry.status != self.model.attributes.status) { + + self.model.changeStatus({ + status: dialog.entry.status, + success: function(data, textStatus, jqXHR) { + self.render(); + }, + error: function(jqXHR, textStatus, errorThrow) { + new ErrorDialog({ + el: $("#error-dialog"), + title: "HTTP Error " + jqXHR.responseJSON.Code, + content: jqXHR.responseJSON.Message + }).open(); + } + }); + } + + dialog.close(); + }); + + dialog.open(); + }); + }, + renderContent: function() { + var self = this; + + TokenPage.__super__.renderContent.call(self); + + if (self.mode == "add") { + self.changeStatusLink.hide(); + } else { + self.changeStatusLink.show(); + } + }, + close: function() { + var self = this; + if (self.parentPage) { + self.parentPage.open(); + } else { + TokenPage.__super__.close.call(self); + } + } +}); + +var TokensTable = ModelTable.extend({ + initialize: function(options) { + var self = this; + TokensTable.__super__.initialize.call(self, options); + self.parentPage = options.parentPage; + }, + open: function(item, column) { + var self = this; + + var model = self.collection.get(item.entry.id); + + if (column == "id") { + var page = new TokenPage({ + el: self.parentPage.$el, + url: "token.html", + model: model, + editable: ["userID", "type", "appletID", "keyInfo"] + }); + + page.open(); + return; } var dialog = new Dialog({ - el: $("#token-state-dialog"), - title: "Change Token State", + el: $("#token-status-dialog"), + title: "Change Token Status", readonly: ["tokenID", "userID", "type", "appletID", "keyInfo", "createTimestamp", "modifyTimestamp"], actions: ["cancel", "save"] }); - dialog.entry = _.clone(self.entry); + dialog.entry = _.clone(model.attributes); dialog.handler("save", function() { @@ -127,13 +211,12 @@ var TokenTableItem = TableItem.extend({ dialog.save(); // check if the status was changed - if (self.entry.status != dialog.entry.status) { + if (dialog.entry.status != model.attributes.status) { - var model = self.table.collection.get(self.entry.id); model.changeStatus({ status: dialog.entry.status, success: function(data, textStatus, jqXHR) { - self.table.render(); + self.render(); }, error: function(jqXHR, textStatus, errorThrow) { new ErrorDialog({ @@ -149,33 +232,31 @@ var TokenTableItem = TableItem.extend({ }); dialog.open(); + }, + add: function() { + var self = this; + + var page = new TokenPage({ + el: self.parentPage.$el, + url: "token.html", + model: new TokenModel(), + mode: "add", + editable: ["tokenID", "userID", "type", "appletID", "keyInfo"], + parentPage: self.parentPage + }); + + page.open(); } }); -var TokenPage = Page.extend({ +var TokensPage = Page.extend({ load: function() { var self = this; - var addDialog = new Dialog({ - el: $("#token-dialog"), - title: "Add Token", - readonly: ["statusLabel", "createTimestamp", "modifyTimestamp"], - actions: ["cancel", "add"] - }); - - var editDialog = new Dialog({ - el: $("#token-dialog"), - title: "Edit Token", - readonly: ["tokenID", "statusLabel", "createTimestamp", "modifyTimestamp"], - actions: ["cancel", "save"] - }); - - var table = new ModelTable({ + var table = new TokensTable({ el: $("table[name='tokens']"), collection: new TokenCollection(), - addDialog: addDialog, - editDialog: editDialog, - tableItem: TokenTableItem + parentPage: self }); table.render(); |