2019-05-02 18:17:27 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-07-30 15:05:08 -04:00
|
|
|
require "erb"
|
|
|
|
|
2017-04-24 15:26:06 -04: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 11:45:49 -04:00
|
|
|
I18n.t("system_messages.private_topic_title", id: topic.id)
|
2017-04-24 15:26:06 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def email_topic_link(topic)
|
|
|
|
url, title = extract_details(topic)
|
2024-07-09 04:42:38 -04:00
|
|
|
raw "<a href='#{Discourse.base_url_no_prefix}#{url}' style='color: ##{@anchor_color}'>#{title}</a>"
|
2017-04-24 15:26:06 -04:00
|
|
|
end
|
|
|
|
|
2020-05-23 00:56:13 -04:00
|
|
|
def email_html_template
|
2020-07-13 10:39:40 -04:00
|
|
|
EmailStyle
|
|
|
|
.new
|
|
|
|
.html
|
2021-07-05 16:40:52 -04:00
|
|
|
.sub("%{email_content}") { capture { yield } }
|
2020-07-13 10:39:40 -04:00
|
|
|
.gsub("%{html_lang}", html_lang)
|
2022-04-20 14:00:04 -04:00
|
|
|
.gsub("%{dark_mode_meta_tags}", dark_mode_meta_tags)
|
|
|
|
.gsub("%{dark_mode_styles}", dark_mode_styles)
|
2020-07-13 10:39:40 -04:00
|
|
|
.html_safe
|
2019-07-30 15:05:08 -04:00
|
|
|
end
|
|
|
|
|
2017-04-24 15:26:06 -04:00
|
|
|
protected
|
|
|
|
|
2022-04-11 13:27:50 -04:00
|
|
|
def dark_mode_meta_tags
|
|
|
|
"
|
|
|
|
<meta name='color-scheme' content='light dark' />
|
|
|
|
<meta name='supported-color-schemes' content='light dark' />
|
|
|
|
"
|
|
|
|
end
|
|
|
|
|
|
|
|
def dark_mode_styles
|
|
|
|
"
|
|
|
|
<style>
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
|
|
html {
|
|
|
|
background: #151515 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
h1,
|
|
|
|
h2,
|
|
|
|
h3,
|
|
|
|
h4,
|
|
|
|
h5,
|
|
|
|
h6,
|
|
|
|
p,
|
2022-04-12 14:13:34 -04:00
|
|
|
span,
|
|
|
|
td {
|
2022-11-04 16:44:49 -04:00
|
|
|
color: inherit !important;
|
2022-04-11 13:27:50 -04:00
|
|
|
}
|
|
|
|
|
2022-04-14 16:08:09 -04:00
|
|
|
[data-stripped-secure-media] {
|
|
|
|
border-color: #454545 !important;
|
|
|
|
}
|
|
|
|
|
2022-09-28 19:24:33 -04:00
|
|
|
[data-stripped-secure-upload] {
|
|
|
|
border-color: #454545 !important;
|
|
|
|
}
|
|
|
|
|
2022-04-11 13:27:50 -04:00
|
|
|
[dm='text-color'] {
|
|
|
|
color: #dddddd;
|
|
|
|
}
|
|
|
|
|
|
|
|
[dm='header'] {
|
|
|
|
background: #151515 !important;
|
|
|
|
}
|
|
|
|
|
2022-04-14 15:03:06 -04:00
|
|
|
[dm='topic-body'] {
|
|
|
|
background: #151515 !important;
|
|
|
|
border-bottom: 1px solid #454545 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
[dm='triangle'] {
|
|
|
|
border-top-color: #151515 !important;
|
|
|
|
}
|
|
|
|
|
2022-04-11 13:27:50 -04:00
|
|
|
[dm='body'] {
|
|
|
|
background: #222222 !important;
|
|
|
|
color: #dddddd !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
[dm='body_primary'] {
|
|
|
|
background: #062e3d !important;
|
|
|
|
color: #dddddd !important;
|
|
|
|
}
|
2022-04-14 15:03:06 -04:00
|
|
|
|
|
|
|
[dm='bg'] {
|
2022-04-14 16:08:09 -04:00
|
|
|
background: #323232 !important;
|
2022-04-14 15:03:06 -04:00
|
|
|
border-color: #454545 !important;
|
|
|
|
}
|
2022-04-11 13:27:50 -04:00
|
|
|
}
|
|
|
|
</style>
|
|
|
|
"
|
|
|
|
end
|
|
|
|
|
2017-04-24 15:26:06 -04:00
|
|
|
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
|