govuk_publishing_components 34.8.0 → 34.9.0

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: 858a7994e35203e75dfc40439dd630bcefefc4a549027d9b7fb404df0028e45b
4
- data.tar.gz: a71a277c8860d002129d138e9e6c104ea040f1163e1cd27ee821c431ed109a2c
3
+ metadata.gz: b6da9ed1af8922136300b056ca61432de28330b478e25e23334917d0fdec9041
4
+ data.tar.gz: 2efcf7e5c91aaca82158059670b6b5ea7d4f52cb998b49a23e13deb32276958e
5
5
  SHA512:
6
- metadata.gz: 5b7610f82890c3fd2f2ad862ed3443df843a8230cca1f0e2e294ba5cd02f4933dd8393f3be521f053ba8fef46b984fe0f692709d4d8457c1a478e4848de4495e
7
- data.tar.gz: f66f9a9c0076b364293b3973cc1b85253d6c701a347967a253e5fe970c877fa7a5eb43edd95e927a155737037e427536e34f99eb0ccdb51712a9e02d6f5815fa
6
+ metadata.gz: c5b8de64f9ba866ce83e1ef48be8d42f3f57b74891f446cba362c83e1a4be599d67039fc9f4cd9ee2e3b77345a4fb2955310a2aefb45b9bfcdf59e69bc06fdd3
7
+ data.tar.gz: 75251f6417ec2c5e3e542eab3f2a914b93c9a5153f6b3be40848640d1e4944d2186e169a26198760cac76f482667e1d73e743105504c465b31974c583b4a0f3f
@@ -9,8 +9,12 @@
9
9
  <svg class="gem-c-single-page-notification-button__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 459.334 459.334"><path fill="currentColor" d="M177.216 404.514c-.001.12-.009.239-.009.359 0 30.078 24.383 54.461 54.461 54.461s54.461-24.383 54.461-54.461c0-.12-.008-.239-.009-.359H175.216zM403.549 336.438l-49.015-72.002v-89.83c0-60.581-43.144-111.079-100.381-122.459V24.485C254.152 10.963 243.19 0 229.667 0s-24.485 10.963-24.485 24.485v27.663c-57.237 11.381-100.381 61.879-100.381 122.459v89.83l-49.015 72.002a24.76 24.76 0 0 0 20.468 38.693H383.08a24.761 24.761 0 0 0 20.469-38.694z"/></svg><span class="gem-c-single-page-notication-button__text"><%= component_helper.button_text %></span>
10
10
  <% end %>
11
11
  <%= tag.div class: wrapper_classes, data: { module: "gem-track-click"} do %>
12
- <%= tag.form class: component_helper.classes, action: "/email/subscriptions/single-page/new", method: "POST", data: component_helper.data do %>
12
+ <%= tag.form class: component_helper.classes, action: component_helper.form_action, method: "POST", data: component_helper.data do %>
13
13
  <input type="hidden" name="base_path" value="<%= component_helper.base_path %>">
14
+ <% if component_helper.skip_account %>
15
+ <input type="hidden" name="<%= component_helper.skip_account_param %>" value="true">
16
+ <input type="hidden" name="link" value="<%= component_helper.base_path %>">
17
+ <% end %>
14
18
  <%= content_tag(:button, button_text, {
15
19
  class: "govuk-body-s gem-c-single-page-notification-button__submit",
16
20
  type: "submit",
@@ -57,3 +57,9 @@ examples:
57
57
  button_text:
58
58
  subscribe: 'Subscribe to this page of things'
59
59
  unsubscribe: 'Unsubscribe to this page of things'
60
+ with_skip_account:
61
+ description: If the skip_account flag is present, the button action will be set to the non GOV.UK account signup endpoint of /email-signup.
62
+ data:
63
+ base_path: '/current-page-path'
64
+ js_enhancement: true
65
+ skip_account: true
@@ -12,6 +12,9 @@ module GovukPublishingComponents
12
12
  world_locations
13
13
  statistical_data_sets
14
14
  ].freeze
15
+ WORLD_LOCATION_SPECIAL_CASES = {
16
+ "UK Mission to the European Union" => "uk-mission-to-the-eu",
17
+ }.freeze
15
18
 
16
19
  def initialize(options = {})
17
20
  @content_item = options.fetch(:content_item) { raise ArgumentError, "missing argument: content_item" }
@@ -112,6 +115,10 @@ module GovukPublishingComponents
112
115
 
113
116
  def related_world_locations
114
117
  content_item_links_for("world_locations")
118
+ .map do |link|
119
+ slug = WORLD_LOCATION_SPECIAL_CASES[link[:text]] || link[:text].parameterize
120
+ link.merge(path: "/world/#{slug}/news")
121
+ end
115
122
  end
116
123
 
117
124
  def related_statistical_data_sets
@@ -1,7 +1,7 @@
1
1
  module GovukPublishingComponents
2
2
  module Presenters
3
3
  class SinglePageNotificationButtonHelper
4
- attr_reader :already_subscribed, :data_attributes, :base_path, :js_enhancement, :button_type, :button_location, :classes
4
+ attr_reader :already_subscribed, :data_attributes, :base_path, :js_enhancement, :button_type, :button_location, :classes, :skip_account
5
5
 
6
6
  def initialize(local_assigns)
7
7
  @local_assigns = local_assigns
@@ -15,6 +15,7 @@ module GovukPublishingComponents
15
15
  @classes << "js-personalisation-enhancement" if js_enhancement
16
16
  @button_text_subscribe = custom_button_text_is_valid? ? custom_subscribe_text : default_subscribe_text
17
17
  @button_text_unsubscribe = custom_button_text_is_valid? ? custom_unsubscribe_text : default_unsubscribe_text
18
+ @skip_account = @local_assigns[:skip_account] || nil
18
19
  end
19
20
 
20
21
  def data
@@ -58,6 +59,22 @@ module GovukPublishingComponents
58
59
  def default_unsubscribe_text
59
60
  I18n.t("components.single_page_notification_button.unsubscribe_text")
60
61
  end
62
+
63
+ def form_action
64
+ @skip_account ? email_alert_frontend_endpoint_no_account : email_alert_frontend_endpoint_enforce_account
65
+ end
66
+
67
+ def email_alert_frontend_endpoint_enforce_account
68
+ "/email/subscriptions/single-page/new"
69
+ end
70
+
71
+ def email_alert_frontend_endpoint_no_account
72
+ "/email-signup"
73
+ end
74
+
75
+ def skip_account_param
76
+ "single_page_subscription"
77
+ end
61
78
  end
62
79
  end
63
80
  end
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "34.8.0".freeze
2
+ VERSION = "34.9.0".freeze
3
3
  end
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: 34.8.0
4
+ version: 34.9.0
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-02-07 00:00:00.000000000 Z
11
+ date: 2023-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config