diff options
author | Endi S. Dewata <edewata@redhat.com> | 2014-02-08 00:20:22 -0500 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2014-02-13 14:20:18 -0500 |
commit | 437c82e85e8a824b268e29492861b92bc09883e3 (patch) | |
tree | d3e6dd340cb6b64754e36d425623f28d26d38491 /base | |
parent | 0d8d764fb330bb81f75ddd40cb6e1429d118eec8 (diff) | |
download | pki-437c82e85e8a824b268e29492861b92bc09883e3.tar.gz pki-437c82e85e8a824b268e29492861b92bc09883e3.tar.xz pki-437c82e85e8a824b268e29492861b92bc09883e3.zip |
Fixed problem refreshing table after add.
Previously the tables in TPS UI did not refresh properly after
adding a new entry. The code has been fixed to reset the collection
object to store the newly fetched entries and close the dialog after
the add operation is done. The success and error handlers for add
and save operations have been reorganized.
Ticket #654
Diffstat (limited to 'base')
-rw-r--r-- | base/server/share/webapps/pki/js/pki-ui.js | 71 |
1 files changed, 40 insertions, 31 deletions
diff --git a/base/server/share/webapps/pki/js/pki-ui.js b/base/server/share/webapps/pki/js/pki-ui.js index c257d28ca..7626d5082 100644 --- a/base/server/share/webapps/pki/js/pki-ui.js +++ b/base/server/share/webapps/pki/js/pki-ui.js @@ -227,32 +227,10 @@ var Dialog = Backbone.View.extend({ var self = this; if (action == "add") { - self.add({ - success: function(model, response, options) { - self.close(); - }, - error: function(model, response, options) { - if (response.status == 201) { - self.close(); - return; - } - alert("ERROR: " + response.responseText); - } - }); + self.add(); } else if (action == "save") { - self.save({ - success: function(model, response, options) { - self.close(); - }, - error: function(model, response, options) { - if (response.status == 200) { - self.close(); - return; - } - alert("ERROR: " + response.responseText); - } - }); + self.save(); } else { self.close(); @@ -306,7 +284,7 @@ var Dialog = Backbone.View.extend({ if (!value) value = ""; input.val(value); }, - add: function(options) { + add: function() { var self = this; self.saveFields(); @@ -317,11 +295,22 @@ var Dialog = Backbone.View.extend({ // save non-empty attributes with POST self.model.save(changedAttributes, { wait: true, - success: options.success, - error: options.error + success: function(model, response, options) { + if (self.success) self.success.call(); + self.close(); + }, + error: function(model, response, options) { + if (response.status == 201) { + if (self.success) self.success.call(); + self.close(); + return; + } + alert("ERROR: " + response.responseText); + if (self.error) self.error.call(); + } }); }, - save: function(options) { + save: function() { var self = this; self.saveFields(); @@ -333,8 +322,19 @@ var Dialog = Backbone.View.extend({ self.model.save(changedAttributes, { patch: true, wait: true, - success: options.success, - error: options.error + success: function(model, response, options) { + if (self.success) self.success.call(); + self.close(); + }, + error: function(model, response, options) { + if (response.status == 200) { + if (self.success) self.success.call(); + self.close(); + return; + } + alert("ERROR: " + response.responseText); + if (self.error) self.error.call(); + } }); }, saveFields: function() { @@ -352,6 +352,14 @@ var Dialog = Backbone.View.extend({ var name = input.attr("name"); var value = input.val(); attributes[name] = value; + }, + done: function(success) { + var self = this; + self.success = success; + }, + fail: function(error) { + var self = this; + self.error = error; } }); @@ -427,7 +435,7 @@ var Table = Backbone.View.extend({ $("button[name='add']", self.thead).click(function(e) { var dialog = self.addDialog; dialog.model = new self.collection.model(); - dialog.once("close", function(event) { + dialog.done(function() { self.render(); }); dialog.open(); @@ -461,6 +469,7 @@ var Table = Backbone.View.extend({ render: function() { var self = this; self.collection.fetch({ + reset: true, success: function() { self.tbody.empty(); |