govuk_publishing_components 37.1.0 → 37.1.1

Sign up to get free protection for your applications and to get access to all the features.
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