govuk_publishing_components 29.0.1 → 29.1.0
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 +4 -4
- data/app/views/govuk_publishing_components/components/_contextual_breadcrumbs.html.erb +0 -5
- data/lib/govuk_publishing_components/presenters/breadcrumb_selector.rb +0 -11
- data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +0 -20
- data/lib/govuk_publishing_components/presenters/meta_tags.rb +1 -37
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/lib/govuk_publishing_components.rb +0 -1
- metadata +2 -3
- data/lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_priority.rb +0 -118
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b8ea9dce00e2fc90b3a88d941fa237f4d276295be027676233cf31cbf904bec0
|
|
4
|
+
data.tar.gz: c3ff5045ff3c0f0be4df536e1ea165c896d01e1b680c4f98f838bc213f4d3931
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1fe533fa65e9d6d6e97e94d388e1176031f4bdf9eb896867b7f81ba56deb790fc630383060aab98f3e7f09f5f6b8547db2c27d19519631a97fbdd135f6314759
|
|
7
|
+
data.tar.gz: 3c7659b2fd425a674de931fee53307329f12586aced6775dde5ae21b982661205a1eaab6aacbdf714bbd81e31e7f095184582bf25ca00b323d57410c45d790b4
|
|
@@ -12,9 +12,4 @@
|
|
|
12
12
|
inverse: inverse,
|
|
13
13
|
collapse_on_mobile: collapse_on_mobile %>
|
|
14
14
|
<% end %>
|
|
15
|
-
<% if breadcrumb_selector.priority_breadcrumbs %>
|
|
16
|
-
<%= render 'govuk_publishing_components/components/step_by_step_nav_header', breadcrumb_selector.priority_breadcrumbs %>
|
|
17
|
-
<% meta_tag = GovukPublishingComponents::Presenters::MetaTags.new(content_item, local_assigns, request).brexit_priority_breadcrumb_tag %>
|
|
18
|
-
<meta name="<%= meta_tag.keys.first %>" content="<%= meta_tag.values.first %>">
|
|
19
|
-
<% end %>
|
|
20
15
|
</div>
|
|
@@ -17,19 +17,8 @@ module GovukPublishingComponents
|
|
|
17
17
|
best_match_option[:step_by_step]
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def priority_breadcrumbs
|
|
21
|
-
return if hide_priority_breadcrumb?
|
|
22
|
-
return parent_item_navigation.priority_breadcrumbs if content_item_navigation.html_publication_with_parent?
|
|
23
|
-
|
|
24
|
-
content_item_navigation.priority_breadcrumbs
|
|
25
|
-
end
|
|
26
|
-
|
|
27
20
|
private
|
|
28
21
|
|
|
29
|
-
def hide_priority_breadcrumb?
|
|
30
|
-
content_item_navigation.content_tagged_to_current_step_by_step? && content_item_navigation.tagged_to_brexit?
|
|
31
|
-
end
|
|
32
|
-
|
|
33
22
|
def best_match_option
|
|
34
23
|
return content_item_options unless content_item_navigation.html_publication_with_parent?
|
|
35
24
|
|
|
@@ -33,10 +33,6 @@ module GovukPublishingComponents
|
|
|
33
33
|
@taxon_breadcrumbs ||= ContentBreadcrumbsBasedOnTaxons.call(content_item)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
def priority_breadcrumbs
|
|
37
|
-
@priority_breadcrumbs ||= ContentBreadcrumbsBasedOnPriority.call(content_item, query_parameters)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
36
|
def topic_breadcrumbs
|
|
41
37
|
@topic_breadcrumbs ||= ContentBreadcrumbsBasedOnTopic.call(content_item)
|
|
42
38
|
end
|
|
@@ -92,22 +88,6 @@ module GovukPublishingComponents
|
|
|
92
88
|
content_item.dig("links", "topics").present?
|
|
93
89
|
end
|
|
94
90
|
|
|
95
|
-
def tagged_to_brexit?
|
|
96
|
-
taxons = content_item.dig("links", "taxons").to_a
|
|
97
|
-
brexit_taxon = "d6c2de5d-ef90-45d1-82d4-5f2438369eea"
|
|
98
|
-
world_brexit_taxon = "d4c4d91d-fbe7-4eff-bd57-189138c626c9"
|
|
99
|
-
|
|
100
|
-
taxons.each do |taxon|
|
|
101
|
-
if taxon["content_id"].eql?(brexit_taxon) ||
|
|
102
|
-
taxon["content_id"].eql?(world_brexit_taxon) ||
|
|
103
|
-
taxon.dig("links", "parent_taxons").to_a.any? { |taxon_item| taxon_item["content_id"].eql?(brexit_taxon) }
|
|
104
|
-
return true
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
false
|
|
109
|
-
end
|
|
110
|
-
|
|
111
91
|
def content_tagged_to_current_step_by_step?
|
|
112
92
|
# TODO: remove indirection here
|
|
113
93
|
step_nav_helper.show_header?
|
|
@@ -20,12 +20,7 @@ module GovukPublishingComponents
|
|
|
20
20
|
meta_tags = add_organisation_tags(meta_tags)
|
|
21
21
|
meta_tags = add_political_tags(meta_tags)
|
|
22
22
|
meta_tags = add_taxonomy_tags(meta_tags)
|
|
23
|
-
|
|
24
|
-
add_brexit_tags("govuk:brexit-audience", meta_tags)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def brexit_priority_breadcrumb_tag
|
|
28
|
-
add_brexit_tags("govuk:brexit-superbreadcrumb")
|
|
23
|
+
add_step_by_step_tags(meta_tags)
|
|
29
24
|
end
|
|
30
25
|
|
|
31
26
|
private
|
|
@@ -116,37 +111,6 @@ module GovukPublishingComponents
|
|
|
116
111
|
meta_tags
|
|
117
112
|
end
|
|
118
113
|
|
|
119
|
-
def add_brexit_tags(tag_key, meta_tags = {})
|
|
120
|
-
links = content_item[:links]
|
|
121
|
-
taxons = links[:taxons] unless links.nil?
|
|
122
|
-
|
|
123
|
-
return meta_tags if taxons.blank?
|
|
124
|
-
return meta_tags unless tagged_to_priority_taxon?
|
|
125
|
-
|
|
126
|
-
taxon =
|
|
127
|
-
tag_key == "govuk:brexit-audience" ? priority_brexit_taxon : priority_taxon
|
|
128
|
-
|
|
129
|
-
brexit_audience = priority_taxon_helper.brexit_audience(taxon)
|
|
130
|
-
meta_tags[tag_key] = brexit_audience if brexit_audience.present?
|
|
131
|
-
meta_tags
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
def tagged_to_priority_taxon?
|
|
135
|
-
priority_taxon_helper.priority_taxon.present?
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
def priority_taxon_helper
|
|
139
|
-
@priority_taxon_helper ||= ContentBreadcrumbsBasedOnPriority.new(content_item.deep_stringify_keys, request.query_parameters)
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
def priority_taxon
|
|
143
|
-
priority_taxon_helper.priority_taxon
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
def priority_brexit_taxon
|
|
147
|
-
priority_taxon_helper.priority_brexit_taxon
|
|
148
|
-
end
|
|
149
|
-
|
|
150
114
|
def has_content_history?
|
|
151
115
|
(content_item[:public_updated_at] && details[:first_public_at] && content_item[:public_updated_at] != details[:first_public_at]) ||
|
|
152
116
|
(details[:change_history] && details[:change_history].size > 1)
|
|
@@ -17,7 +17,6 @@ require "govuk_publishing_components/presenters/step_by_step_nav_helper"
|
|
|
17
17
|
require "govuk_publishing_components/presenters/page_with_step_by_step_navigation"
|
|
18
18
|
require "govuk_publishing_components/presenters/public_layout_helper"
|
|
19
19
|
require "govuk_publishing_components/presenters/content_breadcrumbs_based_on_ancestors"
|
|
20
|
-
require "govuk_publishing_components/presenters/content_breadcrumbs_based_on_priority"
|
|
21
20
|
require "govuk_publishing_components/presenters/content_breadcrumbs_based_on_taxons"
|
|
22
21
|
require "govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic"
|
|
23
22
|
require "govuk_publishing_components/presenters/checkboxes_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: 29.0
|
|
4
|
+
version: 29.1.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: 2022-03-
|
|
11
|
+
date: 2022-03-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: govuk_app_config
|
|
@@ -907,7 +907,6 @@ files:
|
|
|
907
907
|
- lib/govuk_publishing_components/presenters/button_helper.rb
|
|
908
908
|
- lib/govuk_publishing_components/presenters/checkboxes_helper.rb
|
|
909
909
|
- lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_ancestors.rb
|
|
910
|
-
- lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_priority.rb
|
|
911
910
|
- lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_taxons.rb
|
|
912
911
|
- lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_topic.rb
|
|
913
912
|
- lib/govuk_publishing_components/presenters/content_item.rb
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
module GovukPublishingComponents
|
|
2
|
-
module Presenters
|
|
3
|
-
class ContentBreadcrumbsBasedOnPriority
|
|
4
|
-
# keys are labels, values are the content_ids for the matching taxons
|
|
5
|
-
# Where multiple matching taxons are present, the top most one is the highest priority
|
|
6
|
-
# and the bottom one the lowest priority
|
|
7
|
-
PRIORITY_TAXONS = {
|
|
8
|
-
brexit_business: "634fd193-8039-4a70-a059-919c34ff4bfc",
|
|
9
|
-
brexit_individuals: "614b2e65-56ac-4f8d-bb9c-d1a14167ba25",
|
|
10
|
-
brexit_taxon: "d6c2de5d-ef90-45d1-82d4-5f2438369eea",
|
|
11
|
-
}.freeze
|
|
12
|
-
|
|
13
|
-
# Returns the highest priority taxon that has a content_id matching those in PRIORITY_TAXONS
|
|
14
|
-
def self.call(content_item, query_parameters = nil)
|
|
15
|
-
new(content_item, query_parameters).breadcrumbs
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
attr_reader :content_item, :query_parameters
|
|
19
|
-
|
|
20
|
-
def initialize(content_item, query_parameters = nil)
|
|
21
|
-
@content_item = content_item
|
|
22
|
-
@query_parameters = query_parameters
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def priority_taxon
|
|
26
|
-
@priority_taxon ||= begin
|
|
27
|
-
default_taxon = priority_taxons.min_by { |t| PRIORITY_TAXONS.values.index(t["content_id"]) }
|
|
28
|
-
preferred_taxon || default_taxon
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def priority_brexit_taxon
|
|
33
|
-
if tagged_to_both_brexit_child_taxons?
|
|
34
|
-
priority_taxons.find { |t| t["content_id"] == PRIORITY_TAXONS[:brexit_taxon] }
|
|
35
|
-
else
|
|
36
|
-
priority_taxons.min_by { |t| PRIORITY_TAXONS.values.index(t["content_id"]) }
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def breadcrumbs
|
|
41
|
-
priority_taxon && {
|
|
42
|
-
title: priority_taxon["title"],
|
|
43
|
-
path: breadcrumb_path,
|
|
44
|
-
tracking_category: "breadcrumbClicked",
|
|
45
|
-
tracking_action: tracking_action,
|
|
46
|
-
tracking_label: content_item["base_path"],
|
|
47
|
-
tracking_dimension_enabled: false,
|
|
48
|
-
}
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def brexit_audience(taxon)
|
|
52
|
-
return nil unless taxon
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
PRIORITY_TAXONS[:brexit_business] => "Brexitbusiness",
|
|
56
|
-
PRIORITY_TAXONS[:brexit_individuals] => "Brexitcitizen",
|
|
57
|
-
PRIORITY_TAXONS[:brexit_taxon] => "Brexitbusinessandcitizen",
|
|
58
|
-
}[taxon["content_id"]]
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
private
|
|
62
|
-
|
|
63
|
-
def preferred_taxon
|
|
64
|
-
if preferred_priority_taxon
|
|
65
|
-
priority_taxons.find { |t| t["content_id"] == preferred_priority_taxon }
|
|
66
|
-
elsif tagged_to_both_brexit_child_taxons?
|
|
67
|
-
priority_taxons.find { |t| t["content_id"] == PRIORITY_TAXONS[:brexit_taxon] }
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def priority_taxons
|
|
72
|
-
return [] unless content_item["links"].is_a?(Hash)
|
|
73
|
-
|
|
74
|
-
taxons = content_item.dig("links", "taxons")
|
|
75
|
-
taxon_tree(taxons).select do |taxon|
|
|
76
|
-
priority_taxon?(taxon)
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def taxon_tree(taxons)
|
|
81
|
-
return [] if taxons.blank?
|
|
82
|
-
|
|
83
|
-
taxons + taxons.flat_map { |taxon| taxon_tree(taxon.dig("links", "parent_taxons")) }
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def priority_taxon?(taxon)
|
|
87
|
-
PRIORITY_TAXONS.values.include?(taxon["content_id"])
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def brexit_child_taxon?(taxon)
|
|
91
|
-
brexit_child_taxons.include?(taxon["content_id"])
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def brexit_child_taxons
|
|
95
|
-
[PRIORITY_TAXONS[:brexit_business], PRIORITY_TAXONS[:brexit_individuals]]
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def preferred_priority_taxon
|
|
99
|
-
query_parameters["priority-taxon"] if query_parameters
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def tracking_action
|
|
103
|
-
action = %w[superBreadcrumb]
|
|
104
|
-
action << brexit_audience(priority_taxon)
|
|
105
|
-
action.compact.join(" ")
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def tagged_to_both_brexit_child_taxons?
|
|
109
|
-
t = priority_taxons.select { |taxon| brexit_child_taxon?(taxon) }
|
|
110
|
-
t.uniq.count > 1
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def breadcrumb_path
|
|
114
|
-
priority_taxon.dig("details", "url_override").present? ? priority_taxon.dig("details", "url_override") : priority_taxon["base_path"]
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
end
|