govuk_publishing_components 37.1.0 → 37.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43da95e575a63b626abef7368fbe99d286682778b3933f9b021768277b3a8d17
4
- data.tar.gz: a2959e0efd156b0c5d5a70b61561725d55a4c67e58f0e60537970439af0088db
3
+ metadata.gz: 6371bbc7ca91fdd7a004050d47b2f09ac4d55244a8c7475692022e87af313b80
4
+ data.tar.gz: aa375ef7ebb426df626123c3832df1b926b562633c36d8af8202a82cff4d1f65
5
5
  SHA512:
6
- metadata.gz: 60593190a4219cf35788d97f6f491c9f36ad873772d2b3908bcb21c347fcadcd061e35c25225acaa89199f5cabb6f0769376847521738cc26ff23eb088febce5
7
- data.tar.gz: 22a37d5ff61c2164ef441774aae4f9268a9a46b19e7d5dbc847b7e290af706ce038894cd70a992ffe525a17e61ad205476bdb1d4eedc5e486a9f006a38532183
6
+ metadata.gz: 7bc4e2777a12f8a6e6a68de36a0d4bb92d6d5f97e2b16e1a07eb264285c0a5f97c2b0b0d205946c570436368dc7319da9c5796de4c97a700939e3be39f27b120
7
+ data.tar.gz: 24472468c3ebe08a695d1a1f3b03f7e2a21a1850257d8ca0a121663a1ff3d9176de1421746c0e292b589d7f08f7127ec1670946349e2e830ebb080cd1964e9a8
@@ -11,5 +11,3 @@
11
11
  //= link govuk_publishing_components/vendor/modernizr.js
12
12
  //= link govuk_publishing_components/vendor/lux/lux-reporter.js
13
13
  //= link govuk_publishing_components/vendor/lux/lux-measurer.js
14
-
15
- //= link_tree ../builds
@@ -7,6 +7,7 @@
7
7
  classes = %w(gem-c-layout-footer govuk-footer)
8
8
  classes << "gem-c-layout-footer--border" if with_border
9
9
  layout_footer_helper = GovukPublishingComponents::Presenters::LayoutFooterHelper.new(navigation, meta)
10
+ absolute_links_helper = GovukPublishingComponents::Presenters::AbsoluteLinksHelper.new()
10
11
  %>
11
12
  <%= tag.footer class: classes, role: "contentinfo", 'data-module': "ga4-link-tracker" do %>
12
13
  <div class="govuk-width-container">
@@ -51,6 +52,8 @@
51
52
  unless attributes[:data][:ga4_link]
52
53
  attributes[:data][:ga4_link] = layout_footer_helper.generate_ga4_link_attribute(index, ga4_section_index, section[:title], index_total)
53
54
  end
55
+
56
+ item[:href] = absolute_links_helper.make_url_absolute(item[:href])
54
57
  %>
55
58
  <%= link_to item[:text], item[:href], attributes %>
56
59
  </li>
@@ -82,6 +85,8 @@
82
85
  unless attributes[:data][:ga4_link]
83
86
  attributes[:data][:ga4_link] = layout_footer_helper.generate_ga4_link_attribute(index, navigation.length, "Support links", index_total)
84
87
  end
88
+
89
+ item[:href] = absolute_links_helper.make_url_absolute(item[:href])
85
90
  %>
86
91
  <%= link_to item[:text], item[:href], attributes %>
87
92
  </li>
@@ -70,6 +70,8 @@
70
70
 
71
71
  popular_links_heading_classes = %w(govuk-heading-m)
72
72
  popular_links_heading_classes << "gem-c-layout-super-navigation-header__popular-links-heading--large-navbar" if large_navbar
73
+
74
+ absolute_links_helper = GovukPublishingComponents::Presenters::AbsoluteLinksHelper.new()
73
75
  %>
74
76
  <%= content_tag("header",
75
77
  {
@@ -311,9 +313,10 @@
311
313
  link_classes = %w[govuk-link gem-c-layout-super-navigation-header__navigation-second-item-link]
312
314
  link_classes << "gem-c-layout-super-navigation-header__navigation-second-item-link--with-description" if has_description
313
315
  tracking_label = column[:label].downcase.gsub(/\s+/, "")
316
+ link_href = absolute_links_helper.make_url_absolute(item[:href])
314
317
  %>
315
318
  <li class="gem-c-layout-super-navigation-header__dropdown-list-item">
316
- <%= link_to item[:label], item[:href], {
319
+ <%= link_to item[:label], link_href, {
317
320
  class: link_classes,
318
321
  data: {
319
322
  track_action: "#{tracking_label}Link",
@@ -360,7 +363,7 @@
360
363
  data-ga4-form='{ "event_name": "search", "type": "header menu bar", "section": "Search GOV.UK", "action": "search", "url": "/search/all" }'
361
364
  data-ga4-form-include-text
362
365
  data-ga4-form-no-answer-undefined
363
- action="/search"
366
+ action="<%= absolute_links_helper.make_url_absolute('/search') %>"
364
367
  method="get"
365
368
  role="search"
366
369
  aria-label="Site-wide"
@@ -394,7 +397,8 @@
394
397
  <% index_total = popular_links.length %>
395
398
  <% popular_links.each_with_index do | popular_link, index | %>
396
399
  <li class="gem-c-layout-super-navigation-header__popular-item">
397
- <%= link_to popular_link[:label], popular_link[:href], {
400
+ <% link_href = absolute_links_helper.make_url_absolute(popular_link[:href]) %>
401
+ <%= link_to popular_link[:label], link_href, {
398
402
  class: [
399
403
  "govuk-link",
400
404
  "gem-c-layout-super-navigation-header__popular-link",
@@ -65,11 +65,7 @@
65
65
  class="gem-c-metadata__definition-link govuk-!-display-none-print js-see-all-updates-link"
66
66
  data-track-category="content-history"
67
67
  data-track-action="see-all-updates-link-clicked"
68
- data-track-label="history"
69
- <% unless disable_ga4 %>
70
- data-module="ga4-link-tracker"
71
- data-ga4-link="<%= ga4_object %>"
72
- <% end%>>
68
+ data-track-label="history">
73
69
  <%= t("components.metadata.see_all_updates") %>
74
70
  </a>
75
71
  <% end %>
@@ -1,4 +1,8 @@
1
- <form action="/contact/govuk/problem_reports"
1
+ <%
2
+ absolute_links_helper = GovukPublishingComponents::Presenters::AbsoluteLinksHelper.new()
3
+ %>
4
+
5
+ <form action="<%= absolute_links_helper.make_url_absolute('/contact/govuk/problem_reports') %>"
2
6
  id="something-is-wrong"
3
7
  class="gem-c-feedback__form js-feedback-form"
4
8
  data-track-category="Onsite Feedback"
@@ -1,4 +1,8 @@
1
- <form action="/contact/govuk/email-survey-signup"
1
+ <%
2
+ absolute_links_helper = GovukPublishingComponents::Presenters::AbsoluteLinksHelper.new()
3
+ %>
4
+
5
+ <form action="<%= absolute_links_helper.make_url_absolute('/contact/govuk/email-survey-signup') %>"
2
6
  id="page-is-not-useful"
3
7
  class="gem-c-feedback__form gem-c-feedback__form--email gem-c-feedback__js-show js-feedback-form"
4
8
  data-track-category="yesNoFeedbackForm"
@@ -0,0 +1,20 @@
1
+ module GovukPublishingComponents
2
+ module Presenters
3
+ class AbsoluteLinksHelper
4
+ def make_url_absolute(href)
5
+ # If the URL is already absolute do nothing
6
+ unless href.start_with?("/")
7
+ return href
8
+ end
9
+
10
+ host = ENV["VIRTUAL_HOST"] || Plek.new.website_root
11
+
12
+ unless host.start_with?("http://", "https://", "//")
13
+ host = "//#{host}" # '//' preserves the current protocol, we shouldn't force https as that would break dev environments
14
+ end
15
+
16
+ "#{host}#{href}"
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "37.1.0".freeze
2
+ VERSION = "37.1.1".freeze
3
3
  end
@@ -7,6 +7,7 @@ require "govuk_publishing_components/engine"
7
7
  require "govuk_publishing_components/version"
8
8
  require "govuk_publishing_components/presenters/shared_helper"
9
9
  require "govuk_publishing_components/presenters/component_wrapper_helper"
10
+ require "govuk_publishing_components/presenters/absolute_links_helper"
10
11
  require "govuk_publishing_components/presenters/accordion_helper"
11
12
  require "govuk_publishing_components/presenters/attachment_helper"
12
13
  require "govuk_publishing_components/presenters/big_number_helper"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 37.1.0
4
+ version: 37.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-15 00:00:00.000000000 Z
11
+ date: 2023-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config
@@ -943,6 +943,7 @@ files:
943
943
  - lib/govuk_publishing_components/config.rb
944
944
  - lib/govuk_publishing_components/engine.rb
945
945
  - lib/govuk_publishing_components/minitest/component_guide_test.rb
946
+ - lib/govuk_publishing_components/presenters/absolute_links_helper.rb
946
947
  - lib/govuk_publishing_components/presenters/accordion_helper.rb
947
948
  - lib/govuk_publishing_components/presenters/attachment_helper.rb
948
949
  - lib/govuk_publishing_components/presenters/big_number_helper.rb
@@ -1496,7 +1497,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1496
1497
  - !ruby/object:Gem::Version
1497
1498
  version: '0'
1498
1499
  requirements: []
1499
- rubygems_version: 3.4.22
1500
+ rubygems_version: 3.5.1
1500
1501
  signing_key:
1501
1502
  specification_version: 4
1502
1503
  summary: A gem to document components in GOV.UK frontend applications