Sha256: 75f7a55ad67182a40a8c50e104825e29b2546ab4fb31f61b8fa19b835055714d
Contents?: true
Size: 813 Bytes
Versions: 14
Compression:
Stored size: 813 Bytes
Contents
# frozen_string_literal: true module Decidim class IframeDisabler def initialize(text, _options = {}) @text = text end def perform @document = Nokogiri::HTML::DocumentFragment.parse(@text) disable_iframes(@document) document.to_html end private attr_reader :document def disable_iframes(node) if node.name == "iframe" # Default title for accessibility node["title"] = I18n.t("decidim.shared.embed.title") if node["title"].blank? # Disable scrollbar for some embed services node["scrolling"] = "no" orig_node = node.to_s node.replace(%(<div class="disabled-iframe"><!-- #{orig_node} --></div>)) end node.children.each do |child| disable_iframes(child) end end end end
Version data entries
14 entries across 14 versions & 1 rubygems