FIX: replace polls with a link in emails

This commit is contained in:
Régis Hanol
2015-10-22 19:10:07 +02:00
parent 57fc1e5e0c
commit 515fc49727
5 changed files with 20 additions and 8 deletions

View File

@ -55,3 +55,6 @@ en:
topic_must_be_open_to_toggle_status: "The topic must be open to toggle status."
only_staff_or_op_can_toggle_status: "Only a staff member or the original poster can toggle a poll status."
email:
link_to_poll: "Click to view the poll."

View File

@ -22,9 +22,17 @@ DEFAULT_POLL_NAME ||= "poll".freeze
after_initialize do
# remove "Vote Now!" & "Show Results" links in emails
Email::Styles.register_plugin_style do |fragment|
fragment.css(".poll a.cast-votes, .poll a.toggle-results").each(&:remove)
# turn polls into a link in emails
Email::Styles.register_plugin_style do |fragment, opts|
post = Post.find_by(id: opts[:post_id]) rescue nil
if post.nil? || post.trashed?
fragment.css(".poll").each(&:remove)
else
post_url = "#{Discourse.base_url}#{post.url}"
fragment.css(".poll").each do |poll|
poll.replace "<p><a href='#{post_url}'>#{I18n.t("poll.email.link_to_poll")}</a></p>"
end
end
end
module ::DiscoursePoll