diff --git a/cms/static/js/certificates/models/signatory.js b/cms/static/js/certificates/models/signatory.js index a74f7ba10d..6644d01b51 100644 --- a/cms/static/js/certificates/models/signatory.js +++ b/cms/static/js/certificates/models/signatory.js @@ -63,6 +63,11 @@ function(_, str, Backbone, BackboneRelational, gettext) { setOriginalAttributes: function() { // Remember the current state of this model (enables edit->cancel use cases) this._originalAttributes = this.parse(this.toJSON()); + }, + + reset: function() { + // Revert the attributes of this model instance back to initial state + this.set(this._originalAttributes, { parse: true, validate: true }); } }); return Signatory; diff --git a/cms/static/js/certificates/views/signatory_details.js b/cms/static/js/certificates/views/signatory_details.js index 1240f7b95c..4892e994f0 100644 --- a/cms/static/js/certificates/views/signatory_details.js +++ b/cms/static/js/certificates/views/signatory_details.js @@ -73,6 +73,7 @@ function ($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, Sign actionableModel.save({}, { success: function() { actionableModel.setOriginalAttributes(); + self.model.setOriginalAttributes(); dfd.resolve(); self.closeSignatoryEditView(); }.bind(this) @@ -84,6 +85,7 @@ function ($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, Sign closeSignatoryEditView: function(event) { // Enable the cancellation workflow for the editing view if (event && event.preventDefault) { event.preventDefault(); } + if (event) { this.model.reset(); } this.render(); },