diff --git a/cms/static/js/certificates/views/signatory_editor.js b/cms/static/js/certificates/views/signatory_editor.js index 21d53f7f20..9c70e68a44 100644 --- a/cms/static/js/certificates/views/signatory_editor.js +++ b/cms/static/js/certificates/views/signatory_editor.js @@ -11,11 +11,12 @@ define([ 'common/js/components/views/feedback_notification', 'js/models/uploads', 'js/views/uploads', - 'text!templates/signatory-editor.underscore' + 'text!templates/signatory-editor.underscore', + 'edx-ui-toolkit/js/utils/html-utils' ], function($, _, Backbone, gettext, TemplateUtils, ViewUtils, PromptView, NotificationView, FileUploadModel, FileUploadDialog, - signatoryEditorTemplate) { + signatoryEditorTemplate, HtmlUtils) { 'use strict'; var SignatoryEditorView = Backbone.View.extend({ tagName: 'div', @@ -78,7 +79,7 @@ function($, _, Backbone, gettext, is_editing_all_collections: this.isEditingAllCollections, total_saved_signatories: this.getTotalSignatoriesOnServer() }); - return $(this.el).html(_.template(signatoryEditorTemplate)(attributes)); + return HtmlUtils.setHtml(this.$el, HtmlUtils.template(signatoryEditorTemplate)(attributes)); }, setSignatoryName: function(event) { @@ -127,10 +128,9 @@ function($, _, Backbone, gettext, deleteItem: function(event) { // Remove the specified model from the collection - if (event && event.preventDefault) { event.preventDefault(); } var model = this.model; var self = this; - var titleTextTemplate = _.template(gettext('Delete "<%= signatoryName %>" from the list of signatories?')); + var titleTextTemplate = _.template(gettext('Delete "<%- signatoryName %>" from the list of signatories?')); var confirm = new PromptView.Warning({ title: titleTextTemplate({signatoryName: model.get('name')}), message: gettext('This action cannot be undone.'), @@ -148,9 +148,9 @@ function($, _, Backbone, gettext, deleting.show(); model.destroy({ wait: true, - success: function(model) { + success: function(model2) { deleting.hide(); - self.eventAgg.trigger('onSignatoryRemoved', model); + self.eventAgg.trigger('onSignatoryRemoved', model2); } }); } @@ -165,18 +165,20 @@ function($, _, Backbone, gettext, } } }); + if (event && event.preventDefault) { event.preventDefault(); } confirm.show(); }, uploadSignatureImage: function(event) { + var upload, self, modal; event.preventDefault(); - var upload = new FileUploadModel({ + upload = new FileUploadModel({ title: gettext('Upload signature image.'), message: gettext('Image must be in PNG format.'), mimeTypes: ['image/png'] }); - var self = this; - var modal = new FileUploadDialog({ + self = this; + modal = new FileUploadDialog({ model: upload, onSuccess: function(response) { self.model.set('signature_image_path', response.asset.url); @@ -192,12 +194,13 @@ function($, _, Backbone, gettext, */ toggleValidationErrorMessage: function(modelAttribute) { var selector = 'div.add-signatory-' + modelAttribute; + var errorMessage; if (!this.model.isValid() && _.has(this.model.validationError, modelAttribute)) { // Show the error message if it is not exist before. if (!$(selector).hasClass('error')) { - var errorMessage = this.model.validationError[modelAttribute]; + errorMessage = this.model.validationError[modelAttribute]; $(selector).addClass('error'); - $(selector).append("" + errorMessage + ''); + $(selector).append(HtmlUtils.joinHtml(HtmlUtils.HTML(""), errorMessage, HtmlUtils.HTML('')).toString()); // eslint-disable-line max-len } } else { // Remove the error message.