Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
module PageflowScrolled
# @api private
module SprocketsHelper
def scrolled_sprockets_asset_tags(entry_mode:)
safe_join([
javascript_include_tag('pageflow_scrolled/legacy'),
(stylesheet_link_tag('pageflow_scrolled/ui', media: 'all') if entry_mode != :published)
].compact)
def scrolled_sprockets_asset_tags(entry, entry_mode:)
tags = []

if Pageflow.config_for(entry).include_legacy_frontend_javascript
tags << javascript_include_tag('pageflow_scrolled/legacy')
end

tags << stylesheet_link_tag('pageflow_scrolled/ui', media: 'all') if entry_mode != :published

safe_join(tags)
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<%= scrolled_favicons_for_entry(entry, entry_mode: entry_mode) %>

<%= scrolled_sprockets_asset_tags(entry_mode: entry_mode) %>
<%= scrolled_sprockets_asset_tags(entry, entry_mode: entry_mode) %>
<%= scrolled_frontend_stylesheet_packs_tag(entry, entry_mode: entry_mode, seed_options: seed_options) %>

<%= scrolled_theme_properties_style_tag(entry.theme) %>
Expand Down
10 changes: 10 additions & 0 deletions entry_types/scrolled/lib/pageflow_scrolled/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,14 @@ def consent_vendor_host_matchers=(matchers)
# @since 16.1
attr_accessor :legacy_typography_variants

# Whether to include the legacy JavaScript Sprockets asset
# (`pageflow_scrolled/legacy`) in the head of published entries and
# previews. Defaults to `true`. Set to `false` once no code relies
# on the legacy bundle anymore.
#
# @since edge
attr_accessor :include_legacy_frontend_javascript

def initialize(*)
super
@additional_frontend_packs = AdditionalPacks.new
Expand All @@ -172,6 +180,8 @@ def initialize(*)
@consent_vendor_url_matchers = {}

@legacy_typography_variants = {}

@include_legacy_frontend_javascript = true
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,38 @@
module PageflowScrolled
RSpec.describe SprocketsHelper, type: :helper do
describe '#scrolled_sprockets_asset_tags' do
it 'includes legacy javascript tag' do
result = helper.scrolled_sprockets_asset_tags(entry_mode: :published)
it 'includes legacy javascript tag by default' do
entry = create(:published_entry, type_name: 'scrolled')

result = helper.scrolled_sprockets_asset_tags(entry, entry_mode: :published)

expect(result).to have_selector(
'script[src*="pageflow_scrolled/legacy"]',
visible: false
)
end

it 'does not include legacy javascript tag when disabled' do
pageflow_configure do |config|
config.for_entry_type(PageflowScrolled.entry_type) do |entry_type_config|
entry_type_config.include_legacy_frontend_javascript = false
end
end

entry = create(:published_entry, type_name: 'scrolled')

result = helper.scrolled_sprockets_asset_tags(entry, entry_mode: :published)

expect(result).not_to have_selector(
'script[src*="pageflow_scrolled/legacy"]',
visible: false
)
end

it 'includes ui stylesheet in preview mode' do
result = helper.scrolled_sprockets_asset_tags(entry_mode: :preview)
entry = create(:published_entry, type_name: 'scrolled')

result = helper.scrolled_sprockets_asset_tags(entry, entry_mode: :preview)

expect(result).to have_selector(
'link[href*="pageflow_scrolled/ui"]',
Expand All @@ -22,7 +43,9 @@ module PageflowScrolled
end

it 'includes ui stylesheet in editor mode' do
result = helper.scrolled_sprockets_asset_tags(entry_mode: :editor)
entry = create(:published_entry, type_name: 'scrolled')

result = helper.scrolled_sprockets_asset_tags(entry, entry_mode: :editor)

expect(result).to have_selector(
'link[href*="pageflow_scrolled/ui"]',
Expand All @@ -31,7 +54,9 @@ module PageflowScrolled
end

it 'does not include ui stylesheet in published mode' do
result = helper.scrolled_sprockets_asset_tags(entry_mode: :published)
entry = create(:published_entry, type_name: 'scrolled')

result = helper.scrolled_sprockets_asset_tags(entry, entry_mode: :published)

expect(result).not_to have_selector(
'link[href*="pageflow_scrolled/ui"]',
Expand Down
Loading