diff --git a/app/assets/javascripts/discourse/controllers/topic_controller.js b/app/assets/javascripts/discourse/controllers/topic_controller.js index b8479d67072..4db234f377e 100644 --- a/app/assets/javascripts/discourse/controllers/topic_controller.js +++ b/app/assets/javascripts/discourse/controllers/topic_controller.js @@ -141,6 +141,9 @@ Discourse.TopicController = Discourse.ObjectController.extend(Discourse.Selected var topic = this.get('model'); + // Topic title hasn't been sanitized yet, so the template shouldn't trust it. + this.set('topicSaving', true); + // manually update the titles & category topic.setProperties({ title: this.get('newTitle'), @@ -157,9 +160,10 @@ Discourse.TopicController = Discourse.ObjectController.extend(Discourse.Selected title: title, fancy_title: fancy_title }); - + topicController.set('topicSaving', false); }, function(error) { topicController.set('editingTopic', true); + topicController.set('topicSaving', false); if (error && error.responseText) { bootbox.alert($.parseJSON(error.responseText).errors[0]); } else { diff --git a/app/assets/javascripts/discourse/templates/topic.js.handlebars b/app/assets/javascripts/discourse/templates/topic.js.handlebars index e66324b409c..0554adf5507 100644 --- a/app/assets/javascripts/discourse/templates/topic.js.handlebars +++ b/app/assets/javascripts/discourse/templates/topic.js.handlebars @@ -19,7 +19,13 @@