govuk_publishing_components 23.10.0 → 23.12.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/assets/javascripts/govuk_publishing_components/analytics/external-link-tracker.js +0 -2
- data/app/assets/javascripts/govuk_publishing_components/analytics/pii.js +29 -1
- data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +3 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +46 -6
- data/app/controllers/govuk_publishing_components/audit_controller.rb +3 -0
- data/app/models/govuk_publishing_components/audit_applications.rb +12 -5
- data/app/models/govuk_publishing_components/audit_comparer.rb +12 -0
- data/app/views/govuk_publishing_components/audit/show.html.erb +15 -0
- data/app/views/govuk_publishing_components/components/_contextual_sidebar.html.erb +5 -18
- data/app/views/govuk_publishing_components/components/contextual_sidebar/_brexit_cta.html.erb +17 -3
- data/app/views/govuk_publishing_components/components/contextual_sidebar/_brexit_related_links.html.erb +6 -0
- data/app/views/govuk_publishing_components/components/docs/contextual_sidebar.yml +2 -2
- data/app/views/govuk_publishing_components/components/docs/show_password.yml +3 -1
- data/config/locales/cy.yml +2 -5
- data/config/locales/en.yml +2 -5
- data/lib/govuk_publishing_components.rb +7 -6
- data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +1 -1
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +3 -5
- data/app/views/govuk_publishing_components/components/_transition_countdown.html.erb +0 -35
- data/app/views/govuk_publishing_components/components/docs/transition_countdown.yml +0 -17
- data/lib/govuk_publishing_components/app_helpers/countdown_helper.rb +0 -33
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e893228b7aeae4913a2e99436d0d892e32200a65162d7965bcc0f15771bc7ee7
|
|
4
|
+
data.tar.gz: c9b253d4e6ed92190ef52f2e625e9e495a7ab643ba8027d2f1f2988806fe369a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fd695dffba2fdb7868f4fb20cbfcea406020f83f86bb616d1cb52dec78ab39204675224d0027fd96215140269b8fc28397f62067a7bf778bd6052631b4a5b9ec
|
|
7
|
+
data.tar.gz: 48679f3a6272a937d4097c1f6269c180646a4cf7a4e9c975f5952b434a7302da98c0f350d4206da3ff6a9f38dd10d61392aa8c0bb52f5a63d895102a7e2aa9c4
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
var externalLinkUploadCustomDimension = options.externalLinkUploadCustomDimension
|
|
11
11
|
var currentHost = GOVUK.analyticsPlugins.externalLinkTracker.getHostname()
|
|
12
12
|
var externalLinkSelector = 'a[href^="http"]:not(a[href*="' + currentHost + '"])'
|
|
13
|
-
|
|
14
13
|
$('body').on('click', externalLinkSelector, trackClickEvent)
|
|
15
14
|
|
|
16
15
|
function trackClickEvent (evt) {
|
|
@@ -33,7 +32,6 @@
|
|
|
33
32
|
|
|
34
33
|
GOVUK.analytics.setDimension(externalLinkUploadCustomDimension, externalLinkToJoinUploadOn)
|
|
35
34
|
}
|
|
36
|
-
|
|
37
35
|
GOVUK.analytics.trackEvent('External Link Clicked', href, options)
|
|
38
36
|
}
|
|
39
37
|
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
var GOVUK = global.GOVUK || {}
|
|
7
7
|
var EMAIL_PATTERN = /[^\s=/?&]+(?:@|%40)[^\s=/?&]+/g
|
|
8
|
-
var POSTCODE_PATTERN = /[A-PR-UWYZ][A-HJ-Z]?[0-9][0-9A-HJKMNPR-Y]?(?:[\s+]|%20)*[0-9][ABD-HJLNPQ-Z]{2}/gi
|
|
8
|
+
var POSTCODE_PATTERN = /[A-PR-UWYZ][A-HJ-Z]?[0-9][0-9A-HJKMNPR-Y]?(?:[\s+]|%20)*[0-9](?!refund)[ABD-HJLNPQ-Z]{2,3}/gi
|
|
9
9
|
var DATE_PATTERN = /\d{4}(-?)\d{2}(-?)\d{2}/g
|
|
10
|
+
var ESCAPE_REGEX_PATTERN = /[|\\{}()[\]^$+*?.]/g
|
|
10
11
|
|
|
11
12
|
// specific URL parameters to be redacted from accounts URLs
|
|
12
13
|
var RESET_PASSWORD_TOKEN_PATTERN = /reset_password_token=[a-zA-Z0-9-]+/g
|
|
@@ -21,9 +22,24 @@
|
|
|
21
22
|
return ($('meta[name="govuk:static-analytics:strip-postcodes"]').length > 0)
|
|
22
23
|
}
|
|
23
24
|
|
|
25
|
+
function queryStringParametersToStrip () {
|
|
26
|
+
var value = $('meta[name="govuk:static-analytics:strip-query-string-parameters"]').attr('content')
|
|
27
|
+
var parameters = []
|
|
28
|
+
|
|
29
|
+
if (value) {
|
|
30
|
+
var split = value.split(',')
|
|
31
|
+
for (var i = 0; i < split.length; i++) {
|
|
32
|
+
parameters.push(split[i].trim())
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return parameters
|
|
37
|
+
}
|
|
38
|
+
|
|
24
39
|
var pii = function () {
|
|
25
40
|
this.stripDatePII = shouldStripDates()
|
|
26
41
|
this.stripPostcodePII = shouldStripPostcodes()
|
|
42
|
+
this.queryStringParametersToStrip = queryStringParametersToStrip()
|
|
27
43
|
}
|
|
28
44
|
|
|
29
45
|
pii.prototype.stripPII = function (value) {
|
|
@@ -43,6 +59,7 @@
|
|
|
43
59
|
stripped = stripped.replace(RESET_PASSWORD_TOKEN_PATTERN, 'reset_password_token=[reset_password_token]')
|
|
44
60
|
stripped = stripped.replace(UNLOCK_TOKEN_PATTERN, 'unlock_token=[unlock_token]')
|
|
45
61
|
stripped = stripped.replace(STATE_PATTERN, 'state=[state]')
|
|
62
|
+
stripped = this.stripQueryStringParameters(stripped)
|
|
46
63
|
|
|
47
64
|
if (this.stripDatePII === true) {
|
|
48
65
|
stripped = stripped.replace(DATE_PATTERN, '[date]')
|
|
@@ -77,6 +94,17 @@
|
|
|
77
94
|
return array
|
|
78
95
|
}
|
|
79
96
|
|
|
97
|
+
pii.prototype.stripQueryStringParameters = function (string) {
|
|
98
|
+
for (var i = 0; i < this.queryStringParametersToStrip.length; i++) {
|
|
99
|
+
var parameter = this.queryStringParametersToStrip[i]
|
|
100
|
+
var escaped = parameter.replace(ESCAPE_REGEX_PATTERN, '\\$&')
|
|
101
|
+
var regexp = new RegExp('((?:\\?|&)' + escaped + '=)(?:[^&#\\s]*)', 'g')
|
|
102
|
+
string = string.replace(regexp, '$1[' + parameter + ']')
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return string
|
|
106
|
+
}
|
|
107
|
+
|
|
80
108
|
GOVUK.Pii = pii
|
|
81
109
|
|
|
82
110
|
global.GOVUK = GOVUK
|
data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js
CHANGED
|
@@ -105,8 +105,10 @@
|
|
|
105
105
|
events: {
|
|
106
106
|
onReady: function (event) {
|
|
107
107
|
// update iframe title attribute once video is ready
|
|
108
|
+
// this is done to let screen reader users know that they are focused on a video
|
|
109
|
+
// https://github.com/alphagov/govuk_publishing_components/pull/908#discussion_r302913995
|
|
108
110
|
var videoTitle = options.title
|
|
109
|
-
event.target.
|
|
111
|
+
event.target.getIframe().title = videoTitle + ' (video)'
|
|
110
112
|
},
|
|
111
113
|
onStateChange: function (event) {
|
|
112
114
|
var eventData = event.data
|
|
@@ -1,11 +1,51 @@
|
|
|
1
|
-
|
|
1
|
+
$transition-campaign-red: #ff003b;
|
|
2
|
+
$transition-campaign-dark-blue: #1e1348;
|
|
2
3
|
|
|
3
|
-
.gem-c-contextual-sidebar__brexit-
|
|
4
|
+
.gem-c-contextual-sidebar__brexit-related-links {
|
|
4
5
|
border-top: 2px solid $govuk-brand-colour;
|
|
6
|
+
|
|
7
|
+
.gem-c-contextual-sidebar__brexit-heading {
|
|
8
|
+
@include govuk-font(19, $weight: bold);
|
|
9
|
+
padding-top: govuk-spacing(3);
|
|
10
|
+
margin-bottom: govuk-spacing(2);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.gem-c-contextual-sidebar__brexit-cta {
|
|
15
|
+
@include govuk-font(19);
|
|
16
|
+
margin-bottom: govuk-spacing(6);
|
|
17
|
+
background-color: govuk-colour('light-grey', $legacy: 'grey-4');
|
|
18
|
+
border-top: 4px solid $transition-campaign-red;
|
|
19
|
+
display: block;
|
|
20
|
+
padding: govuk-spacing(3);
|
|
21
|
+
text-decoration: none;
|
|
22
|
+
|
|
23
|
+
.gem-c-contextual-sidebar__brexit-heading {
|
|
24
|
+
@extend %govuk-heading-m;
|
|
25
|
+
color: $transition-campaign-dark-blue;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.gem-c-contextual-sidebar__brexit-text {
|
|
29
|
+
@extend %govuk-link;
|
|
30
|
+
|
|
31
|
+
margin-top: 0;
|
|
32
|
+
margin-bottom: 0;
|
|
33
|
+
text-decoration: underline;
|
|
34
|
+
|
|
35
|
+
@include govuk-media-query($from: tablet) {
|
|
36
|
+
margin-bottom: govuk-spacing(2);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@include govuk-compatibility(govuk_template) {
|
|
41
|
+
.gem-c-contextual-sidebar__brexit-title {
|
|
42
|
+
margin-bottom: govuk-spacing(3);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
5
45
|
}
|
|
6
46
|
|
|
7
|
-
.gem-c-contextual-sidebar__brexit-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
47
|
+
.gem-c-contextual-sidebar__brexit-cta:focus {
|
|
48
|
+
.gem-c-contextual-sidebar__brexit-text {
|
|
49
|
+
text-decoration: none;
|
|
50
|
+
}
|
|
11
51
|
}
|
|
@@ -21,12 +21,15 @@ module GovukPublishingComponents
|
|
|
21
21
|
collections-publisher
|
|
22
22
|
content-data-admin
|
|
23
23
|
content-publisher
|
|
24
|
+
datagovuk_find
|
|
24
25
|
email-alert-frontend
|
|
25
26
|
feedback
|
|
26
27
|
finder-frontend
|
|
27
28
|
frontend
|
|
28
29
|
government-frontend
|
|
29
30
|
govspeak-preview
|
|
31
|
+
govuk-account-manager-prototype
|
|
32
|
+
govuk-coronavirus-vulnerable-people-form
|
|
30
33
|
info-frontend
|
|
31
34
|
licence-finder
|
|
32
35
|
manuals-frontend
|
|
@@ -7,6 +7,7 @@ module GovukPublishingComponents
|
|
|
7
7
|
application_found = application_exists(path)
|
|
8
8
|
components_found = []
|
|
9
9
|
@gem_style_references = []
|
|
10
|
+
@jquery_references = []
|
|
10
11
|
|
|
11
12
|
if application_found
|
|
12
13
|
templates = Dir["#{path}/app/views/**/*.erb"]
|
|
@@ -65,6 +66,7 @@ module GovukPublishingComponents
|
|
|
65
66
|
application_found: application_found,
|
|
66
67
|
components_found: components_found,
|
|
67
68
|
gem_style_references: @gem_style_references.flatten.uniq.sort,
|
|
69
|
+
jquery_references: @jquery_references.flatten.uniq.sort,
|
|
68
70
|
}
|
|
69
71
|
end
|
|
70
72
|
|
|
@@ -76,8 +78,14 @@ module GovukPublishingComponents
|
|
|
76
78
|
files.each do |file|
|
|
77
79
|
src = File.read(file)
|
|
78
80
|
components_found << find_match(find, src, type)
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
|
|
82
|
+
if type == "javascripts"
|
|
83
|
+
jquery_references = find_code_references(file, src, /\$\(/)
|
|
84
|
+
@jquery_references << jquery_references if jquery_references
|
|
85
|
+
else
|
|
86
|
+
gem_style_references = find_code_references(file, src, /gem-c-[-_a-zA-Z]+/)
|
|
87
|
+
@gem_style_references << gem_style_references if gem_style_references
|
|
88
|
+
end
|
|
81
89
|
rescue StandardError
|
|
82
90
|
puts "File #{file} not found"
|
|
83
91
|
end
|
|
@@ -99,11 +107,10 @@ module GovukPublishingComponents
|
|
|
99
107
|
all_matches
|
|
100
108
|
end
|
|
101
109
|
|
|
102
|
-
def
|
|
103
|
-
find_gem_classes = /gem-c-[-_a-zA-Z]+/
|
|
110
|
+
def find_code_references(file, src, regex)
|
|
104
111
|
clean_file_path = /(?<=#{Regexp.escape(@path)}\/)[\/a-zA-Z_-]+.[a-zA-Z.]+/
|
|
105
112
|
|
|
106
|
-
return file[clean_file_path] if
|
|
113
|
+
return file[clean_file_path] if regex.match?(src)
|
|
107
114
|
end
|
|
108
115
|
|
|
109
116
|
def clean_file_name(name)
|
|
@@ -37,6 +37,7 @@ module GovukPublishingComponents
|
|
|
37
37
|
warnings << warn_about_missing_components(result[:components_found])
|
|
38
38
|
warnings << warn_about_missing_assets(result[:components_found])
|
|
39
39
|
warnings << warn_about_style_overrides(result[:gem_style_references])
|
|
40
|
+
warnings << warn_about_jquery_references(result[:jquery_references])
|
|
40
41
|
warnings = warnings.flatten
|
|
41
42
|
|
|
42
43
|
data << {
|
|
@@ -67,6 +68,7 @@ module GovukPublishingComponents
|
|
|
67
68
|
warnings: warnings,
|
|
68
69
|
warning_count: warnings.length,
|
|
69
70
|
gem_style_references: result[:gem_style_references],
|
|
71
|
+
jquery_references: result[:jquery_references],
|
|
70
72
|
}
|
|
71
73
|
else
|
|
72
74
|
data << {
|
|
@@ -163,6 +165,16 @@ module GovukPublishingComponents
|
|
|
163
165
|
warnings
|
|
164
166
|
end
|
|
165
167
|
|
|
168
|
+
def warn_about_jquery_references(results)
|
|
169
|
+
warnings = []
|
|
170
|
+
|
|
171
|
+
results.each do |result|
|
|
172
|
+
warnings << create_warning("Possible jQuery", result)
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
warnings
|
|
176
|
+
end
|
|
177
|
+
|
|
166
178
|
def find_missing(needle, haystack)
|
|
167
179
|
(haystack - needle).flatten.sort
|
|
168
180
|
end
|
|
@@ -109,6 +109,21 @@
|
|
|
109
109
|
<% end %>
|
|
110
110
|
</ul>
|
|
111
111
|
<% end %>
|
|
112
|
+
|
|
113
|
+
<% if application[:jquery_references].any? %>
|
|
114
|
+
<%= render "govuk_publishing_components/components/heading", {
|
|
115
|
+
text: "jQuery references",
|
|
116
|
+
font_size: "m",
|
|
117
|
+
margin_bottom: 4,
|
|
118
|
+
heading_level: 3,
|
|
119
|
+
} %>
|
|
120
|
+
<p class="govuk-body">This shows JavaScript files that might contain jQuery, which we are trying to remove our dependency on.</p>
|
|
121
|
+
<ul class="govuk-list govuk-list--bullet">
|
|
122
|
+
<% application[:jquery_references].each do |ref| %>
|
|
123
|
+
<li><%= ref %></li>
|
|
124
|
+
<% end %>
|
|
125
|
+
</ul>
|
|
126
|
+
<% end %>
|
|
112
127
|
<% else %>
|
|
113
128
|
<p class="govuk-body">This application was not found. This could be because you do not have this repository checked out locally.</p>
|
|
114
129
|
<% end %>
|
|
@@ -2,23 +2,10 @@
|
|
|
2
2
|
<% shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns) %>
|
|
3
3
|
|
|
4
4
|
<div class="gem-c-contextual-sidebar">
|
|
5
|
-
<% if navigation.
|
|
6
|
-
<%= render 'govuk_publishing_components/components/contextual_sidebar/
|
|
5
|
+
<% if navigation.show_brexit_related_links? && navigation.step_by_step_count.zero? %>
|
|
6
|
+
<%= render 'govuk_publishing_components/components/contextual_sidebar/brexit_related_links' %>
|
|
7
7
|
<% elsif navigation.step_by_step_count.zero? && !navigation.transition_countdown_exception? %>
|
|
8
|
-
<%= render 'govuk_publishing_components/components/
|
|
9
|
-
title: t("components.related_navigation.transition.title"),
|
|
10
|
-
url: t("components.related_navigation.transition.link_path"),
|
|
11
|
-
text: t("components.related_navigation.transition.link_text"),
|
|
12
|
-
data_attributes: {
|
|
13
|
-
"module": "track-click",
|
|
14
|
-
"track-category": "relatedLinkClicked",
|
|
15
|
-
"track-action": "1.0 Transition",
|
|
16
|
-
"track-label": t("components.related_navigation.transition.link_path"),
|
|
17
|
-
"track-dimension": t("components.related_navigation.transition.link_text"),
|
|
18
|
-
"track-dimension-index": "29",
|
|
19
|
-
},
|
|
20
|
-
lang: shared_helper.t_locale("components.related_navigation.transition.title"),
|
|
21
|
-
} %>
|
|
8
|
+
<%= render 'govuk_publishing_components/components/contextual_sidebar/brexit_cta' %>
|
|
22
9
|
<% end %>
|
|
23
10
|
|
|
24
11
|
<% if navigation.content_tagged_to_a_reasonable_number_of_step_by_steps? %>
|
|
@@ -43,7 +30,7 @@
|
|
|
43
30
|
} %>
|
|
44
31
|
<% end %>
|
|
45
32
|
|
|
46
|
-
<% if navigation.
|
|
47
|
-
<%= render 'govuk_publishing_components/components/contextual_sidebar/
|
|
33
|
+
<% if navigation.show_brexit_related_links? && navigation.step_by_step_count > 0 %>
|
|
34
|
+
<%= render 'govuk_publishing_components/components/contextual_sidebar/brexit_related_links' %>
|
|
48
35
|
<% end %>
|
|
49
36
|
</div>
|
data/app/views/govuk_publishing_components/components/contextual_sidebar/_brexit_cta.html.erb
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
|
+
<% shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns) %>
|
|
1
2
|
<% link_text = t("components.related_navigation.transition.link_text") %>
|
|
2
3
|
<% link_path = t("components.related_navigation.transition.link_path") %>
|
|
3
|
-
|
|
4
|
+
|
|
5
|
+
<% data_attributes = {
|
|
6
|
+
"module": "track-click",
|
|
7
|
+
"track-category": "relatedLinkClicked",
|
|
8
|
+
"track-action": "1.0 Transition",
|
|
9
|
+
"track-label": link_path,
|
|
10
|
+
"track-dimension": link_text,
|
|
11
|
+
"track-dimension-index": "29",
|
|
12
|
+
} %>
|
|
13
|
+
|
|
14
|
+
<%= link_to link_path,
|
|
15
|
+
class: "govuk-link gem-c-contextual-sidebar__brexit-cta",
|
|
16
|
+
data: data_attributes,
|
|
17
|
+
lang: shared_helper.t_locale("components.related_navigation.transition.title") do %>
|
|
4
18
|
<h2 class="gem-c-contextual-sidebar__brexit-heading"><%= t("components.related_navigation.transition.title") %></h2>
|
|
5
|
-
<
|
|
6
|
-
|
|
19
|
+
<p class="gem-c-contextual-sidebar__brexit-text"><%= link_text %></p>
|
|
20
|
+
<% end %>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<% link_text = t("components.related_navigation.transition.link_text") %>
|
|
2
|
+
<% link_path = t("components.related_navigation.transition.link_path") %>
|
|
3
|
+
<div class="gem-c-contextual-sidebar__brexit-related-links govuk-!-margin-bottom-6" data-module="track-click" lang="en">
|
|
4
|
+
<h2 class="gem-c-contextual-sidebar__brexit-heading"><%= t("components.related_navigation.transition.title") %></h2>
|
|
5
|
+
<a href="<%= link_path %>" class="govuk-link" data-track-category="relatedLinkClicked" data-track-action="1.0 Transition" data-track-label="<%= link_path %>" data-track-options='{"dimension29":"<%= link_text %>"}'><%= link_text %></a>
|
|
6
|
+
</div>
|
|
@@ -81,7 +81,7 @@ examples:
|
|
|
81
81
|
- text: The Highway Code
|
|
82
82
|
href: "/guidance/the-highway-code"
|
|
83
83
|
optional: false
|
|
84
|
-
|
|
84
|
+
with_brexit_and_other_related_links:
|
|
85
85
|
data:
|
|
86
86
|
content_item:
|
|
87
87
|
title: "A content item"
|
|
@@ -108,7 +108,7 @@ examples:
|
|
|
108
108
|
- title: The future of jobs and skills
|
|
109
109
|
base_path: /government/collections/the-future-of-jobs-and-skills
|
|
110
110
|
document_type: document_collection
|
|
111
|
-
|
|
111
|
+
with_brexit_related_links_and_step_by_steps:
|
|
112
112
|
data:
|
|
113
113
|
content_item:
|
|
114
114
|
title: "A content item"
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
name: Show password input
|
|
1
|
+
name: Show password input (experimental)
|
|
2
2
|
description: A password input field that allows the password to be shown.
|
|
3
3
|
body: |
|
|
4
4
|
Adds a password reveal button to an input that toggles its type from password to text, revealing the password. Does not appear if JavaScript is disabled.
|
|
5
5
|
|
|
6
6
|
Uses a visually hidden bit of text to inform screen reader users of the state of the input rather than announcing the content of the password input when toggled.
|
|
7
|
+
|
|
8
|
+
This component is currently experimental. If you are using it, please feed back any research findings to the Accounts team.
|
|
7
9
|
accessibility_criteria: |
|
|
8
10
|
The component must:
|
|
9
11
|
|
data/config/locales/cy.yml
CHANGED
|
@@ -10,9 +10,6 @@ cy:
|
|
|
10
10
|
contents: Cynnwys
|
|
11
11
|
related_navigation:
|
|
12
12
|
transition:
|
|
13
|
-
title: "
|
|
13
|
+
title: "Brexit"
|
|
14
14
|
link_path: "/transition.cy"
|
|
15
|
-
link_text: "
|
|
16
|
-
transition_countdown:
|
|
17
|
-
day_to_go: "diwrnod i fynd"
|
|
18
|
-
days_to_go: "diwrnod i fynd"
|
|
15
|
+
link_text: "Darganfyddwch sut mae’r rheolau Brexit newydd yn effeithio arnoch chi"
|
data/config/locales/en.yml
CHANGED
|
@@ -77,9 +77,9 @@ en:
|
|
|
77
77
|
topical_events: "Topical event"
|
|
78
78
|
world_locations: "World locations"
|
|
79
79
|
transition:
|
|
80
|
-
title: "Brexit
|
|
80
|
+
title: "Brexit"
|
|
81
81
|
link_path: "/transition"
|
|
82
|
-
link_text: "Check
|
|
82
|
+
link_text: "Check how the new Brexit rules affect you"
|
|
83
83
|
related_footer_navigation:
|
|
84
84
|
collections: "Collections"
|
|
85
85
|
policies: "Policies"
|
|
@@ -103,6 +103,3 @@ en:
|
|
|
103
103
|
summary_list:
|
|
104
104
|
edit: "Change"
|
|
105
105
|
delete: "Delete"
|
|
106
|
-
transition_countdown:
|
|
107
|
-
day_to_go: "day to go"
|
|
108
|
-
days_to_go: "days to go"
|
|
@@ -34,18 +34,19 @@ require "govuk_publishing_components/presenters/taxonomy_list_helper"
|
|
|
34
34
|
require "govuk_publishing_components/app_helpers/taxon_breadcrumbs"
|
|
35
35
|
require "govuk_publishing_components/app_helpers/table_helper"
|
|
36
36
|
require "govuk_publishing_components/app_helpers/brand_helper"
|
|
37
|
-
require "govuk_publishing_components/app_helpers/countdown_helper"
|
|
38
37
|
require "govuk_publishing_components/app_helpers/environment"
|
|
39
38
|
|
|
40
|
-
# Add
|
|
41
|
-
ActionController::Base.append_view_path(
|
|
42
|
-
File.expand_path("app/views", GovukPublishingComponents::Config.gem_directory),
|
|
43
|
-
)
|
|
44
|
-
|
|
39
|
+
# Add i18n paths and views for usage outside of a Rails app
|
|
45
40
|
I18n.load_path.unshift(
|
|
46
41
|
*Dir.glob(File.expand_path("config/locales/*.yml", GovukPublishingComponents::Config.gem_directory)),
|
|
47
42
|
)
|
|
48
43
|
|
|
44
|
+
ActiveSupport.on_load(:action_controller) do
|
|
45
|
+
ActionController::Base.append_view_path(
|
|
46
|
+
File.expand_path("app/views", GovukPublishingComponents::Config.gem_directory),
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
49
50
|
module GovukPublishingComponents
|
|
50
51
|
def self.render(component, options = {})
|
|
51
52
|
I18n.with_locale(options.fetch(:locale, "en")) do
|
|
@@ -104,7 +104,7 @@ module GovukPublishingComponents
|
|
|
104
104
|
false
|
|
105
105
|
end
|
|
106
106
|
|
|
107
|
-
def
|
|
107
|
+
def show_brexit_related_links?
|
|
108
108
|
# If tagged directly to /brexit or /world/brexit
|
|
109
109
|
# Or if tagged to a taxon which has /brexit as a parent
|
|
110
110
|
# And is not the brexit checker start page
|
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: 23.
|
|
4
|
+
version: 23.12.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:
|
|
11
|
+
date: 2021-01-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: govuk_app_config
|
|
@@ -678,13 +678,13 @@ files:
|
|
|
678
678
|
- app/views/govuk_publishing_components/components/_taxonomy_list.html.erb
|
|
679
679
|
- app/views/govuk_publishing_components/components/_textarea.html.erb
|
|
680
680
|
- app/views/govuk_publishing_components/components/_title.html.erb
|
|
681
|
-
- app/views/govuk_publishing_components/components/_transition_countdown.html.erb
|
|
682
681
|
- app/views/govuk_publishing_components/components/_translation-nav.html.erb
|
|
683
682
|
- app/views/govuk_publishing_components/components/_warning_text.html.erb
|
|
684
683
|
- app/views/govuk_publishing_components/components/attachment/_thumbnail_document.svg
|
|
685
684
|
- app/views/govuk_publishing_components/components/attachment/_thumbnail_generic.svg
|
|
686
685
|
- app/views/govuk_publishing_components/components/attachment/_thumbnail_spreadsheet.svg
|
|
687
686
|
- app/views/govuk_publishing_components/components/contextual_sidebar/_brexit_cta.html.erb
|
|
687
|
+
- app/views/govuk_publishing_components/components/contextual_sidebar/_brexit_related_links.html.erb
|
|
688
688
|
- app/views/govuk_publishing_components/components/docs/accordion.yml
|
|
689
689
|
- app/views/govuk_publishing_components/components/docs/action_link.yml
|
|
690
690
|
- app/views/govuk_publishing_components/components/docs/admin_analytics.yml
|
|
@@ -758,7 +758,6 @@ files:
|
|
|
758
758
|
- app/views/govuk_publishing_components/components/docs/taxonomy_list.yml
|
|
759
759
|
- app/views/govuk_publishing_components/components/docs/textarea.yml
|
|
760
760
|
- app/views/govuk_publishing_components/components/docs/title.yml
|
|
761
|
-
- app/views/govuk_publishing_components/components/docs/transition_countdown.yml
|
|
762
761
|
- app/views/govuk_publishing_components/components/docs/translation-nav.yml
|
|
763
762
|
- app/views/govuk_publishing_components/components/docs/warning_text.yml
|
|
764
763
|
- app/views/govuk_publishing_components/components/feedback/_problem_form.html.erb
|
|
@@ -783,7 +782,6 @@ files:
|
|
|
783
782
|
- lib/generators/govuk_publishing_components/templates/component.yml.erb
|
|
784
783
|
- lib/govuk_publishing_components.rb
|
|
785
784
|
- lib/govuk_publishing_components/app_helpers/brand_helper.rb
|
|
786
|
-
- lib/govuk_publishing_components/app_helpers/countdown_helper.rb
|
|
787
785
|
- lib/govuk_publishing_components/app_helpers/environment.rb
|
|
788
786
|
- lib/govuk_publishing_components/app_helpers/table_helper.rb
|
|
789
787
|
- lib/govuk_publishing_components/app_helpers/taxon_breadcrumbs.rb
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<%
|
|
2
|
-
countdown_clock = GovukPublishingComponents::AppHelpers::CountdownHelper.new
|
|
3
|
-
shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
|
|
4
|
-
|
|
5
|
-
heading_level ||= 2
|
|
6
|
-
title ||= nil
|
|
7
|
-
text ||= nil
|
|
8
|
-
url ||= nil
|
|
9
|
-
data_attributes ||= {}
|
|
10
|
-
lang ||= "en"
|
|
11
|
-
direction ||= "ltr"
|
|
12
|
-
css_classes = %w(gem-c-transition-countdown)
|
|
13
|
-
css_classes << "gem-c-transition-countdown--cta" if url
|
|
14
|
-
css_classes << "govuk-link" if url
|
|
15
|
-
%>
|
|
16
|
-
|
|
17
|
-
<% countdown = capture do %>
|
|
18
|
-
<%= content_tag(shared_helper.get_heading_level, title, class: "gem-c-transition-countdown__title") if title %>
|
|
19
|
-
<% if countdown_clock.show? %>
|
|
20
|
-
<%= tag.p class: "gem-c-transition-countdown__countdown" do %>
|
|
21
|
-
<%= tag.span countdown_clock.days_left.first, class: "gem-c-transition-countdown__countdown-number" %><%= tag.span countdown_clock.days_left.last, class: "gem-c-transition-countdown__countdown-number" %> <%= tag.span countdown_clock.days_text, class: "gem-c-transition-countdown__countdown-text" %>
|
|
22
|
-
<% end %>
|
|
23
|
-
<% end %>
|
|
24
|
-
<%= tag.p text, class: "gem-c-transition-countdown__text" if text %>
|
|
25
|
-
<% end %>
|
|
26
|
-
|
|
27
|
-
<% if url %>
|
|
28
|
-
<%= link_to url, class: css_classes, data: data_attributes, lang: lang, dir: direction do %>
|
|
29
|
-
<%= countdown %>
|
|
30
|
-
<% end %>
|
|
31
|
-
<% else %>
|
|
32
|
-
<%= tag.div class: css_classes, lang: lang, dir: direction do %>
|
|
33
|
-
<%= countdown %>
|
|
34
|
-
<% end %>
|
|
35
|
-
<% end %>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
name: Transition countdown
|
|
2
|
-
description: A countdown to 01 January 2021 used in the Brexit transition campaign
|
|
3
|
-
body: When a URL is set it acts as a link to actions users need to take to prepare for brexit during the transition period
|
|
4
|
-
shared_accessibility_criteria:
|
|
5
|
-
- link
|
|
6
|
-
examples:
|
|
7
|
-
default:
|
|
8
|
-
data:
|
|
9
|
-
call_to_action:
|
|
10
|
-
data:
|
|
11
|
-
title: Brexit transition
|
|
12
|
-
text: Check you’re ready for 2021
|
|
13
|
-
url: "https://www.gov.uk/transition"
|
|
14
|
-
data_attributes:
|
|
15
|
-
"track-category": "Transition"
|
|
16
|
-
"track-action": "Brexit transition"
|
|
17
|
-
"track-label": "Check you’re ready for 2021"
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module GovukPublishingComponents
|
|
2
|
-
module AppHelpers
|
|
3
|
-
class CountdownHelper
|
|
4
|
-
END_OF_TRANSITION_PERIOD = Date.new(2021, 1, 1)
|
|
5
|
-
|
|
6
|
-
def days_left
|
|
7
|
-
sprintf "%02d", days_left_integer
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def show?
|
|
11
|
-
days_left_integer.positive?
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def days_text
|
|
15
|
-
if days_left_integer == 1
|
|
16
|
-
I18n.t!("components.transition_countdown.day_to_go")
|
|
17
|
-
else
|
|
18
|
-
I18n.t!("components.transition_countdown.days_to_go")
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
def days_left_integer
|
|
25
|
-
(END_OF_TRANSITION_PERIOD - today_in_london).to_i
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def today_in_london
|
|
29
|
-
Time.find_zone("Europe/London").today
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|