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
|
||||||
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
|
private
|
||||||
|
|
||||||
def update_category_topic_count_by(num)
|
def update_category_topic_count_by(num)
|
||||||
|
|
|
@ -37,7 +37,8 @@ class TopicViewSerializer < ApplicationSerializer
|
||||||
:highest_post_number,
|
:highest_post_number,
|
||||||
:last_read_post_number,
|
:last_read_post_number,
|
||||||
:deleted_by,
|
:deleted_by,
|
||||||
:actions_summary
|
:actions_summary,
|
||||||
|
:expandable_first_post
|
||||||
|
|
||||||
# Define a delegator for each attribute of the topic we want
|
# Define a delegator for each attribute of the topic we want
|
||||||
attributes *topic_attributes
|
attributes *topic_attributes
|
||||||
|
@ -164,4 +165,12 @@ class TopicViewSerializer < ApplicationSerializer
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def expandable_first_post
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
def include_expandable_first_post?
|
||||||
|
object.topic.expandable_first_post?
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,6 +33,7 @@ describe TopicEmbed do
|
||||||
# It converts relative URLs to absolute
|
# 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.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
|
TopicEmbed.where(topic_id: post.topic_id).should be_present
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1320,4 +1320,35 @@ describe Topic do
|
||||||
Topic.calculate_avg_time(1.day.ago)
|
Topic.calculate_avg_time(1.day.ago)
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
Loading…
Reference in New Issue