mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 15:49:55 +08:00
8ebd5edd1e
This commit renames all secure_media related settings to secure_uploads_* along with the associated functionality. This is being done because "media" does not really cover it, we aren't just doing this for images and videos etc. but for all uploads in the site. Additionally, in future we want to secure more types of uploads, and enable a kind of "mixed mode" where some uploads are secure and some are not, so keeping media in the name is just confusing. This also keeps compatibility with the `secure-media-uploads` path, and changes new secure URLs to be `secure-uploads`. Deprecated settings: * secure_media -> secure_uploads * secure_media_allow_embed_images_in_emails -> secure_uploads_allow_embed_images_in_emails * secure_media_max_email_embed_image_size_kb -> secure_uploads_max_email_embed_image_size_kb
123 lines
2.6 KiB
Ruby
123 lines
2.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'erb'
|
|
|
|
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)
|
|
I18n.t("system_messages.private_topic_title", id: topic.id)
|
|
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
|
|
|
|
def email_html_template
|
|
EmailStyle.new.html
|
|
.sub('%{email_content}') { capture { yield } }
|
|
.gsub('%{html_lang}', html_lang)
|
|
.gsub('%{dark_mode_meta_tags}', dark_mode_meta_tags)
|
|
.gsub('%{dark_mode_styles}', dark_mode_styles)
|
|
.html_safe
|
|
end
|
|
|
|
protected
|
|
|
|
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,
|
|
span,
|
|
td {
|
|
color: #dddddd !important;
|
|
}
|
|
|
|
[data-stripped-secure-media] {
|
|
border-color: #454545 !important;
|
|
}
|
|
|
|
[data-stripped-secure-upload] {
|
|
border-color: #454545 !important;
|
|
}
|
|
|
|
[dm='text-color'] {
|
|
color: #dddddd;
|
|
}
|
|
|
|
[dm='header'] {
|
|
background: #151515 !important;
|
|
}
|
|
|
|
[dm='topic-body'] {
|
|
background: #151515 !important;
|
|
border-bottom: 1px solid #454545 !important;
|
|
}
|
|
|
|
[dm='triangle'] {
|
|
border-top-color: #151515 !important;
|
|
}
|
|
|
|
[dm='body'] {
|
|
background: #222222 !important;
|
|
color: #dddddd !important;
|
|
}
|
|
|
|
[dm='body_primary'] {
|
|
background: #062e3d !important;
|
|
color: #dddddd !important;
|
|
}
|
|
|
|
[dm='bg'] {
|
|
background: #323232 !important;
|
|
border-color: #454545 !important;
|
|
}
|
|
}
|
|
</style>
|
|
"
|
|
end
|
|
|
|
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
|