app/presenters/decidim/proposals/proposal_presenter.rb in decidim-proposals-0.18.0 vs app/presenters/decidim/proposals/proposal_presenter.rb in decidim-proposals-0.18.1
- old
+ new
@@ -6,10 +6,12 @@
# Decorator for proposals
#
class ProposalPresenter < SimpleDelegator
include Rails.application.routes.mounted_helpers
include ActionView::Helpers::UrlHelper
+ include ActionView::Helpers::SanitizeHelper
+ include Decidim::SanitizeHelper
def author
@author ||= if official?
Decidim::Proposals::OfficialAuthorPresenter.new
else
@@ -39,16 +41,25 @@
# links - should render hashtags as links?
# extras - should include extra hashtags?
#
# Returns a String.
def title(links: false, extras: true, html_escape: false)
- renderer = Decidim::ContentRenderers::HashtagRenderer.new(proposal.title)
- renderer.render(links: links, extras: extras, html_escape: html_escape).html_safe
+ text = proposal.title
+ text = decidim_html_escape(text) if html_escape
+
+ renderer = Decidim::ContentRenderers::HashtagRenderer.new(text)
+ renderer.render(links: links, extras: extras).html_safe
end
def body(links: false, extras: true, strip_tags: false)
- renderer = Decidim::ContentRenderers::HashtagRenderer.new(proposal.body)
- renderer.render(links: links, extras: extras, strip_tags: strip_tags).html_safe
+ text = proposal.body
+ text = strip_tags(text) if strip_tags
+
+ renderer = Decidim::ContentRenderers::HashtagRenderer.new(text)
+ text = renderer.render(links: links, extras: extras).html_safe
+
+ text = Anchored::Linker.auto_link(text, target: "_blank", rel: "noopener") if links
+ text
end
end
end
end