2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-07-31 03:05:08 +08:00
|
|
|
require 'erb'
|
|
|
|
|
2017-04-25 03:26:06 +08:00
|
|
|
module EmailHelper
|
|
|
|
|
|
|
|
def mailing_list_topic(topic, post_count)
|
|
|
|
render(
|
|
|
|
partial: partial_for("mailing_list_post"),
|
|
|
|
locals: { topic: topic, post_count: post_count }
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
|
|
|
def mailing_list_topic_text(topic)
|
|
|
|
url, title = extract_details(topic)
|
|
|
|
raw(@markdown_linker.create(title, url))
|
|
|
|
end
|
|
|
|
|
|
|
|
def private_topic_title(topic)
|
2017-04-27 23:45:49 +08:00
|
|
|
I18n.t("system_messages.private_topic_title", id: topic.id)
|
2017-04-25 03:26:06 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
def email_topic_link(topic)
|
|
|
|
url, title = extract_details(topic)
|
|
|
|
raw "<a href='#{Discourse.base_url}#{url}' style='color: ##{@anchor_color}'>#{title}</a>"
|
|
|
|
end
|
|
|
|
|
2019-07-31 03:05:08 +08:00
|
|
|
def email_html_template(binding_arg)
|
|
|
|
template = EmailStyle.new.html.sub(
|
|
|
|
'%{email_content}',
|
|
|
|
'<%= yield %><% if defined?(html_body) %><%= html_body %><% end %>'
|
|
|
|
)
|
|
|
|
ERB.new(template).result(binding_arg)
|
|
|
|
end
|
|
|
|
|
2017-04-25 03:26:06 +08:00
|
|
|
protected
|
|
|
|
|
|
|
|
def extract_details(topic)
|
|
|
|
if SiteSetting.private_email?
|
|
|
|
[topic.slugless_url, private_topic_title(topic)]
|
|
|
|
else
|
|
|
|
[topic.relative_url, format_topic_title(topic.title)]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def partial_for(name)
|
|
|
|
SiteSetting.private_email? ? "email/secure_#{name}" : "email/#{name}"
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|