diff --git a/app/assets/javascripts/discourse/controllers/topic.js.es6 b/app/assets/javascripts/discourse/controllers/topic.js.es6 index 3607e1d9f40..71be8528f2d 100644 --- a/app/assets/javascripts/discourse/controllers/topic.js.es6 +++ b/app/assets/javascripts/discourse/controllers/topic.js.es6 @@ -509,7 +509,7 @@ export default Ember.Controller.extend(SelectedPostsCount, BufferedContent, { }).then(q => { const postUrl = `${location.protocol}//${location.host}${post.get('url')}`; const postLink = `[${Handlebars.escapeExpression(self.get('model.title'))}](${postUrl})`; - composerController.get('model').appendText(`${I18n.t("post.continue_discussion", { postLink })}\n\n${q}`); + composerController.get('model').prependText(`${I18n.t("post.continue_discussion", { postLink })}\n\n${q}`, {new_line: true}); }); }, diff --git a/app/assets/javascripts/discourse/models/composer.js.es6 b/app/assets/javascripts/discourse/models/composer.js.es6 index af4c9c41aef..b7d5a318b56 100644 --- a/app/assets/javascripts/discourse/models/composer.js.es6 +++ b/app/assets/javascripts/discourse/models/composer.js.es6 @@ -360,6 +360,15 @@ const Composer = RestModel.extend({ return before.length + text.length; }, + prependText(text, opts) { + const reply = (this.get('reply') || ''); + + if (opts && opts.new_line && reply.length > 0) { + text = text.trim() + "\n\n"; + } + this.set('reply', text + reply); + }, + applyTopicTemplate(oldCategoryId, categoryId) { if (this.get('action') !== CREATE_TOPIC) { return; } let reply = this.get('reply'); diff --git a/test/javascripts/models/composer-test.js.es6 b/test/javascripts/models/composer-test.js.es6 index c156c92306e..d541aaeb087 100644 --- a/test/javascripts/models/composer-test.js.es6 +++ b/test/javascripts/models/composer-test.js.es6 @@ -95,6 +95,21 @@ test("appendText", function() { equal(composer.get("reply"), "c\n\nab"); }); +test("prependText", function() { + const composer = createComposer(); + + blank(composer.get('reply'), "the reply is blank by default"); + + composer.prependText("hello"); + equal(composer.get('reply'), "hello", "it prepends text to nothing"); + + composer.prependText("world "); + equal(composer.get('reply'), "world hello", "it prepends text to existing text"); + + composer.prependText("before new line", {new_line: true}); + equal(composer.get('reply'), "before new line\n\nworld hello", "it prepends text with new line to existing text"); +}); + test("Title length for regular topics", function() { Discourse.SiteSettings.min_topic_title_length = 5; Discourse.SiteSettings.max_topic_title_length = 10;