mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 18:30:26 -06:00
New field: Whether or not to include an expandable first post for
embedded content.
This commit is contained in:
parent
eff8b48da9
commit
f5c7ccb4e6
@ -707,6 +707,14 @@ class Topic < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def has_topic_embed?
|
||||
TopicEmbed.where(topic_id: id).exists?
|
||||
end
|
||||
|
||||
def expandable_first_post?
|
||||
SiteSetting.embeddable_host.present? && SiteSetting.embed_truncate? && has_topic_embed?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def update_category_topic_count_by(num)
|
||||
|
@ -37,7 +37,8 @@ class TopicViewSerializer < ApplicationSerializer
|
||||
:highest_post_number,
|
||||
:last_read_post_number,
|
||||
:deleted_by,
|
||||
:actions_summary
|
||||
:actions_summary,
|
||||
:expandable_first_post
|
||||
|
||||
# Define a delegator for each attribute of the topic we want
|
||||
attributes *topic_attributes
|
||||
@ -164,4 +165,12 @@ class TopicViewSerializer < ApplicationSerializer
|
||||
result
|
||||
end
|
||||
|
||||
def expandable_first_post
|
||||
true
|
||||
end
|
||||
|
||||
def include_expandable_first_post?
|
||||
object.topic.expandable_first_post?
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -33,6 +33,7 @@ describe TopicEmbed do
|
||||
# It converts relative URLs to absolute
|
||||
post.cooked.start_with?("hello world new post <a href=\"http://eviltrout.com/hello\">hello</a> <img src=\"http://eviltrout.com/images/wat.jpg\">").should be_true
|
||||
|
||||
post.topic.has_topic_embed?.should be_true
|
||||
TopicEmbed.where(topic_id: post.topic_id).should be_present
|
||||
end
|
||||
|
||||
|
@ -1320,4 +1320,35 @@ describe Topic do
|
||||
Topic.calculate_avg_time(1.day.ago)
|
||||
end
|
||||
end
|
||||
|
||||
describe "expandable_first_post?" do
|
||||
let(:topic) { Fabricate.build(:topic) }
|
||||
|
||||
before do
|
||||
SiteSetting.stubs(:embeddable_host).returns("http://eviltrout.com")
|
||||
SiteSetting.stubs(:embed_truncate?).returns(true)
|
||||
topic.stubs(:has_topic_embed?).returns(true)
|
||||
end
|
||||
|
||||
it "is true with the correct settings and topic_embed" do
|
||||
topic.expandable_first_post?.should be_true
|
||||
end
|
||||
|
||||
it "is false if embeddable_host is blank" do
|
||||
SiteSetting.stubs(:embeddable_host).returns(nil)
|
||||
topic.expandable_first_post?.should be_false
|
||||
end
|
||||
|
||||
it "is false if embed_truncate? is false" do
|
||||
SiteSetting.stubs(:embed_truncate?).returns(false)
|
||||
topic.expandable_first_post?.should be_false
|
||||
end
|
||||
|
||||
it "is false if has_topic_embed? is false" do
|
||||
topic.stubs(:has_topic_embed?).returns(false)
|
||||
topic.expandable_first_post?.should be_false
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user