diff --git a/app/assets/javascripts/discourse/models/composer.js.es6 b/app/assets/javascripts/discourse/models/composer.js.es6 index 659568377db..79ed585bbd4 100644 --- a/app/assets/javascripts/discourse/models/composer.js.es6 +++ b/app/assets/javascripts/discourse/models/composer.js.es6 @@ -286,7 +286,7 @@ const Composer = RestModel.extend({ @computed('minimumPostLength', 'replyLength', 'canEditTopicFeaturedLink') missingReplyCharacters(minimumPostLength, replyLength, canEditTopicFeaturedLink) { if (this.get('post.post_type') === this.site.get('post_types.small_action') || - canEditTopicFeaturedLink && this.siteSettings.topic_featured_link_onebox) { return 0; } + canEditTopicFeaturedLink && this.get('featuredLink')) { return 0; } return minimumPostLength - replyLength; }, @@ -509,9 +509,7 @@ const Composer = RestModel.extend({ if (!this.get('cantSubmitPost')) { // change category may result in some effect for topic featured link - if (this.get('canEditTopicFeaturedLink')) { - if (this.siteSettings.topic_featured_link_onebox) { this.set('reply', null); } - } else { + if (!this.get('canEditTopicFeaturedLink')) { this.set('featuredLink', null); } diff --git a/lib/validators/post_validator.rb b/lib/validators/post_validator.rb index 30e68bafad7..a1836eb8f3e 100644 --- a/lib/validators/post_validator.rb +++ b/lib/validators/post_validator.rb @@ -41,7 +41,7 @@ class Validators::PostValidator < ActiveModel::Validator SiteSetting.private_message_post_length elsif post.is_first_post? || (post.topic.present? && post.topic.posts_count == 0) # creating/editing first post - SiteSetting.first_post_length + post.topic&.featured_link&.present? ? (0..SiteSetting.max_post_length) : SiteSetting.first_post_length else # regular post SiteSetting.post_length diff --git a/spec/components/post_creator_spec.rb b/spec/components/post_creator_spec.rb index 1b56b8a7204..b6fe3fb6606 100644 --- a/spec/components/post_creator_spec.rb +++ b/spec/components/post_creator_spec.rb @@ -246,8 +246,10 @@ describe PostCreator do it 'creates a post with featured link' do SiteSetting.topic_featured_link_enabled = true + SiteSetting.min_first_post_length = 100 post = creator_with_featured_link.create expect(post.topic.featured_link).to eq('http://www.discourse.org') + expect(post.valid?).to eq(true) end describe "topic's auto close" do diff --git a/test/javascripts/models/composer-test.js.es6 b/test/javascripts/models/composer-test.js.es6 index a79bb85a6d1..86208aa5843 100644 --- a/test/javascripts/models/composer-test.js.es6 +++ b/test/javascripts/models/composer-test.js.es6 @@ -41,9 +41,10 @@ test('missingReplyCharacters', function() { missingReplyCharacters('hi', false, true, Discourse.SiteSettings.min_first_post_length - 2, 'too short first post'); missingReplyCharacters('hi', true, false, Discourse.SiteSettings.min_private_message_post_length - 2, 'too short private message'); - // TODO: test that presence of featured link makes this test pass - // const composer = createComposer({ canEditTopicFeaturedLink: true }); - // equal(composer.get('missingReplyCharacters'), 0, "don't require any post content"); + const link = "http://imgur.com/gallery/grxX8"; + const composer = createComposer({ canEditTopicFeaturedLink: true, title: link, featuredLink: link, reply: link }); + + equal(composer.get('missingReplyCharacters'), 0, "don't require any post content"); }); test('missingTitleCharacters', function() {