govuk_publishing_components 21.14.0 → 21.15.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/components/cookie-banner.js +4 -12
- data/app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js +18 -17
- data/app/assets/stylesheets/govuk_publishing_components/components/_cookie-banner.scss +17 -35
- data/app/views/govuk_publishing_components/components/_contextual_guidance.html.erb +2 -1
- data/app/views/govuk_publishing_components/components/_cookie_banner.html.erb +33 -29
- data/app/views/govuk_publishing_components/components/_textarea.html.erb +3 -1
- data/app/views/govuk_publishing_components/components/docs/contextual_guidance.yml +2 -1
- data/app/views/govuk_publishing_components/components/docs/cookie_banner.yml +0 -4
- data/app/views/govuk_publishing_components/components/docs/textarea.yml +12 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a49f0b03464d55542eb09daf6d95f85059090ef2977fdd3e96b09b326c06fa52
|
|
4
|
+
data.tar.gz: 7856a1ec7759dee3ff52127cf836676777d2753593f49e2ba3692cd8e854c3e9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1ef24d7b0418ef007e0871d405518c7666137d2b364b8660cfb16ce5930ddc56cc6061283bc459a4a44c15c97a252a57b35f9b406fd2fae87d924b8055213300
|
|
7
|
+
data.tar.gz: b8e911d17e93799b4fcc0bf46e3f50b20c96213bf97c8704a4d5ec9ab9771f3638c4c1461a8ba11429a4475c61ae081e3c66f2f8c7d451cff1456a7192d564c1
|
|
@@ -27,27 +27,19 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
27
27
|
this.$acceptCookiesLink.addEventListener('click', this.$module.setCookieConsent)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
// Force the new cookie banner to show if we don't think the user has seen it before
|
|
31
|
-
// This involves resetting the seen_cookie_message cookie, which may be set to true if they've seen the old cookie banner
|
|
32
|
-
if (!window.GOVUK.cookie('cookie_policy')) {
|
|
33
|
-
if (window.GOVUK.cookie('seen_cookie_message') === 'true') {
|
|
34
|
-
window.GOVUK.cookie('seen_cookie_message', false, { days: 365 })
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
30
|
this.showCookieMessage()
|
|
39
31
|
}
|
|
40
32
|
|
|
41
33
|
CookieBanner.prototype.showCookieMessage = function () {
|
|
42
34
|
// Show the cookie banner if not in the cookie settings page or in an iframe
|
|
43
35
|
if (!this.isInCookiesPage() && !this.isInIframe()) {
|
|
44
|
-
var shouldHaveCookieMessage = (this.$module && window.GOVUK.cookie('
|
|
36
|
+
var shouldHaveCookieMessage = (this.$module && window.GOVUK.cookie('cookies_preferences_set') !== 'true')
|
|
45
37
|
|
|
46
38
|
if (shouldHaveCookieMessage) {
|
|
47
39
|
this.$module.style.display = 'block'
|
|
48
40
|
|
|
49
41
|
// Set the default consent cookie if it isn't already present
|
|
50
|
-
if (!window.GOVUK.cookie('
|
|
42
|
+
if (!window.GOVUK.cookie('cookies_policy')) {
|
|
51
43
|
window.GOVUK.setDefaultConsentCookie()
|
|
52
44
|
}
|
|
53
45
|
} else {
|
|
@@ -61,7 +53,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
61
53
|
CookieBanner.prototype.hideCookieMessage = function (event) {
|
|
62
54
|
if (this.$module) {
|
|
63
55
|
this.$module.style.display = 'none'
|
|
64
|
-
window.GOVUK.cookie('
|
|
56
|
+
window.GOVUK.cookie('cookies_preferences_set', 'true', { days: 365 })
|
|
65
57
|
}
|
|
66
58
|
|
|
67
59
|
if (event.target) {
|
|
@@ -73,7 +65,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
73
65
|
window.GOVUK.approveAllCookieTypes()
|
|
74
66
|
this.$module.showConfirmationMessage()
|
|
75
67
|
this.$module.cookieBannerConfirmationMessage.focus()
|
|
76
|
-
window.GOVUK.cookie('
|
|
68
|
+
window.GOVUK.cookie('cookies_preferences_set', 'true', { days: 365 })
|
|
77
69
|
}
|
|
78
70
|
|
|
79
71
|
CookieBanner.prototype.showConfirmationMessage = function () {
|
|
@@ -6,29 +6,30 @@
|
|
|
6
6
|
|
|
7
7
|
var DEFAULT_COOKIE_CONSENT = {
|
|
8
8
|
'essential': true,
|
|
9
|
-
'settings':
|
|
10
|
-
'usage':
|
|
11
|
-
'campaigns':
|
|
9
|
+
'settings': false,
|
|
10
|
+
'usage': false,
|
|
11
|
+
'campaigns': false
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
var COOKIE_CATEGORIES = {
|
|
15
|
-
'
|
|
16
|
-
'cookie_policy': 'essential',
|
|
17
|
-
'govuk_not_first_visit': 'essential',
|
|
18
|
-
'govuk_browser_upgrade_dismisssed': 'essential',
|
|
15
|
+
'cookies_policy': 'essential',
|
|
19
16
|
'seen_cookie_message': 'essential',
|
|
20
17
|
'cookie_preferences_set': 'essential',
|
|
21
|
-
'
|
|
22
|
-
'govuk_takenUserSatisfactionSurvey': 'essential',
|
|
18
|
+
'cookies_preferences_set': 'essential',
|
|
23
19
|
'_email-alert-frontend_session': 'essential',
|
|
24
|
-
'global_bar_seen': 'essential',
|
|
25
20
|
'licensing_session': 'essential',
|
|
26
21
|
'govuk_contact_referrer': 'essential',
|
|
27
|
-
'
|
|
22
|
+
'global_bar_seen': 'settings',
|
|
23
|
+
'govuk_browser_upgrade_dismisssed': 'settings',
|
|
24
|
+
'govuk_not_first_visit': 'settings',
|
|
25
|
+
'govuk_surveySeenUserSatisfactionSurvey': 'settings',
|
|
26
|
+
'govuk_takenUserSatisfactionSurvey': 'settings',
|
|
27
|
+
'analytics_next_page_call': 'usage',
|
|
28
28
|
'_ga': 'usage',
|
|
29
29
|
'_gid': 'usage',
|
|
30
30
|
'_gat': 'usage',
|
|
31
|
-
'
|
|
31
|
+
'JS-Detection': 'usage',
|
|
32
|
+
'TLSversion': 'usage'
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
/*
|
|
@@ -63,7 +64,7 @@
|
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
window.GOVUK.setDefaultConsentCookie = function () {
|
|
66
|
-
window.GOVUK.
|
|
67
|
+
window.GOVUK.setConsentCookie(DEFAULT_COOKIE_CONSENT)
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
window.GOVUK.approveAllCookieTypes = function () {
|
|
@@ -74,11 +75,11 @@
|
|
|
74
75
|
'campaigns': true
|
|
75
76
|
}
|
|
76
77
|
|
|
77
|
-
window.GOVUK.setCookie('
|
|
78
|
+
window.GOVUK.setCookie('cookies_policy', JSON.stringify(approvedConsent), { days: 365 })
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
window.GOVUK.getConsentCookie = function () {
|
|
81
|
-
var consentCookie = window.GOVUK.cookie('
|
|
82
|
+
var consentCookie = window.GOVUK.cookie('cookies_policy')
|
|
82
83
|
var consentCookieObj
|
|
83
84
|
|
|
84
85
|
if (consentCookie) {
|
|
@@ -122,7 +123,7 @@
|
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
125
|
|
|
125
|
-
window.GOVUK.setCookie('
|
|
126
|
+
window.GOVUK.setCookie('cookies_policy', JSON.stringify(cookieConsent), { days: 365 })
|
|
126
127
|
}
|
|
127
128
|
|
|
128
129
|
window.GOVUK.checkConsentCookieCategory = function (cookieName, cookieCategory) {
|
|
@@ -146,7 +147,7 @@
|
|
|
146
147
|
|
|
147
148
|
window.GOVUK.checkConsentCookie = function (cookieName, cookieValue) {
|
|
148
149
|
// If we're setting the consent cookie OR deleting a cookie, allow by default
|
|
149
|
-
if (cookieName === '
|
|
150
|
+
if (cookieName === 'cookies_policy' || (cookieValue === null || cookieValue === false)) {
|
|
150
151
|
return true
|
|
151
152
|
}
|
|
152
153
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
$govuk-cookie-banner-background: govuk-colour("
|
|
2
|
-
$govuk-cookie-banner-text-green: #00823b;
|
|
1
|
+
$govuk-cookie-banner-background: govuk-colour("light-grey", "grey-4");
|
|
3
2
|
|
|
4
3
|
.js-enabled {
|
|
5
4
|
.gem-c-cookie-banner {
|
|
@@ -11,60 +10,41 @@ $govuk-cookie-banner-text-green: #00823b;
|
|
|
11
10
|
@include govuk-font($size: 16);
|
|
12
11
|
padding: govuk-spacing(2) 0;
|
|
13
12
|
background-color: $govuk-cookie-banner-background;
|
|
14
|
-
border: 2px solid govuk-colour("black");
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
.gem-c-cookie-banner__message {
|
|
18
16
|
display: inline-block;
|
|
19
|
-
|
|
17
|
+
@include govuk-font($size: 16);
|
|
20
18
|
padding-right: govuk-spacing(4);
|
|
21
19
|
padding-bottom: govuk-spacing(2);
|
|
22
|
-
color: $govuk-cookie-banner-text-green;
|
|
23
20
|
}
|
|
24
21
|
|
|
25
|
-
.gem-c-cookie-
|
|
26
|
-
@include govuk-clearfix;
|
|
22
|
+
.gem-c-cookie-banner__button {
|
|
27
23
|
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
&.govuk-grid-column-one-half-from-desktop {
|
|
25
|
+
padding: 0;
|
|
30
26
|
}
|
|
31
|
-
}
|
|
32
27
|
|
|
33
|
-
.
|
|
34
|
-
|
|
35
|
-
width: 100%;
|
|
28
|
+
.govuk-button {
|
|
29
|
+
width: 90%;
|
|
36
30
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
float: left;
|
|
40
|
-
width: 49%;
|
|
31
|
+
@include govuk-media-query($until: desktop) {
|
|
32
|
+
margin-bottom: govuk-spacing(4);
|
|
41
33
|
}
|
|
42
34
|
|
|
43
|
-
&.gem-c-cookie-banner__button-settings {
|
|
44
|
-
.js-enabled & {
|
|
45
|
-
float: right;
|
|
46
|
-
width: 49%;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@include govuk-media-query($from: desktop) {
|
|
52
|
-
width: auto;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@include govuk-media-query($until: 455px) {
|
|
56
|
-
width: 100%;
|
|
57
35
|
}
|
|
58
36
|
}
|
|
59
37
|
|
|
38
|
+
// Only show accept button if users have js and can accept
|
|
60
39
|
.gem-c-cookie-banner__button-accept {
|
|
61
40
|
display: none;
|
|
41
|
+
}
|
|
62
42
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
43
|
+
.js-enabled .gem-c-cookie-banner__button-accept {
|
|
44
|
+
display: inline-block;
|
|
66
45
|
}
|
|
67
46
|
|
|
47
|
+
|
|
68
48
|
.gem-c-cookie-banner__confirmation {
|
|
69
49
|
display: none;
|
|
70
50
|
position: relative;
|
|
@@ -137,8 +117,10 @@ $govuk-cookie-banner-text-green: #00823b;
|
|
|
137
117
|
}
|
|
138
118
|
|
|
139
119
|
p {
|
|
140
|
-
|
|
120
|
+
@include govuk-font($size: 19);
|
|
121
|
+
margin: 0 0 govuk-spacing(2) 0;
|
|
141
122
|
}
|
|
123
|
+
|
|
142
124
|
}
|
|
143
125
|
// sass-lint:enable no-ids
|
|
144
126
|
// scss-lint:enable IdSelector
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
content ||= nil
|
|
5
5
|
data_attributes ||= {}
|
|
6
6
|
data_attributes[:module] = "contextual-guidance"
|
|
7
|
+
guidance_id ||= nil
|
|
7
8
|
%>
|
|
8
9
|
|
|
9
10
|
<%= tag.div class: "gem-c-contextual-guidance", id: id, data: data_attributes do %>
|
|
@@ -14,7 +15,7 @@
|
|
|
14
15
|
<% end %>
|
|
15
16
|
<% end %>
|
|
16
17
|
<%= tag.div class: "govuk-grid-column-one-third" do %>
|
|
17
|
-
<%= tag.div class: "gem-c-contextual-guidance__wrapper", for: html_for do %>
|
|
18
|
+
<%= tag.div class: "gem-c-contextual-guidance__wrapper", for: html_for, id: guidance_id do %>
|
|
18
19
|
<%= tag.div class: "gem-c-contextual-guidance__guidance" do %>
|
|
19
20
|
<%= tag.h2 title, class: "govuk-heading-s" %>
|
|
20
21
|
<%= content %>
|
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
<%
|
|
2
2
|
id ||= 'global-cookie-message'
|
|
3
|
-
message ||= "GOV.UK uses cookies which are essential for the site to work. We also use non-essential cookies to help us improve government digital services. Any data collected is anonymised. By continuing to use this site, you agree to our use of cookies."
|
|
4
3
|
%>
|
|
5
4
|
|
|
6
|
-
<div id="<%= id %>" class="gem-c-cookie-banner" data-module="cookie-banner" role="region" aria-label="cookie banner" data-nosnippet>
|
|
5
|
+
<div id="<%= id %>" class="gem-c-cookie-banner govuk-clearfix" data-module="cookie-banner" role="region" aria-label="cookie banner" data-nosnippet>
|
|
7
6
|
<div class="gem-c-cookie-banner__wrapper govuk-width-container">
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
7
|
+
<div class="govuk-row">
|
|
8
|
+
<div class=" govuk-grid-column-two-thirds">
|
|
9
|
+
<div class="gem-c-cookie-banner__message">
|
|
10
|
+
<span class="govuk-heading-m">Tell us whether you accept cookies</span>
|
|
11
|
+
<p class="govuk-body">We use <a class="govuk-link" href="help/cookies">cookies to collect information</a> about how you use GOV.UK. We use this information to make the website work as well as possible and improve government services.</p>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="gem-c-cookie-banner__buttons">
|
|
14
|
+
<div class="gem-c-cookie-banner__button gem-c-cookie-banner__button-accept govuk-grid-column-full govuk-grid-column-one-half-from-desktop">
|
|
15
|
+
<%= render "govuk_publishing_components/components/button", {
|
|
16
|
+
text: "Accept all cookies",
|
|
17
|
+
inline_layout: true,
|
|
18
|
+
data_attributes: {
|
|
19
|
+
module: "track-click",
|
|
20
|
+
"accept-cookies": "true",
|
|
21
|
+
"track-category": "cookieBanner",
|
|
22
|
+
"track-action": "Cookie banner accepted"
|
|
23
|
+
}
|
|
24
|
+
} %>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="gem-c-cookie-banner__button gem-c-cookie-banner__button-settings govuk-grid-column-full govuk-grid-column-one-half-from-desktop">
|
|
27
|
+
<%= render "govuk_publishing_components/components/button", {
|
|
28
|
+
text: "Set cookie preferences",
|
|
29
|
+
href: "/help/cookies",
|
|
30
|
+
inline_layout: true,
|
|
31
|
+
data_attributes: {
|
|
32
|
+
module: "track-click",
|
|
33
|
+
"track-category": "cookieBanner",
|
|
34
|
+
"track-action": "Cookie banner settings clicked"
|
|
35
|
+
}
|
|
36
|
+
} %>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
35
39
|
</div>
|
|
36
40
|
</div>
|
|
37
41
|
</div>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
id ||= "textarea-#{SecureRandom.hex(4)}"
|
|
3
3
|
value ||= nil
|
|
4
4
|
rows ||= 5
|
|
5
|
+
describedby ||= nil
|
|
5
6
|
data ||= nil
|
|
6
7
|
spellcheck ||= "true"
|
|
7
8
|
|
|
@@ -27,10 +28,11 @@
|
|
|
27
28
|
form_group_css_classes << (shared_helper.get_margin_bottom)
|
|
28
29
|
|
|
29
30
|
aria_described_by ||= nil
|
|
30
|
-
if hint || has_error
|
|
31
|
+
if hint || has_error || describedby
|
|
31
32
|
aria_described_by = []
|
|
32
33
|
aria_described_by << hint_id if hint
|
|
33
34
|
aria_described_by << error_id if has_error
|
|
35
|
+
aria_described_by << describedby if describedby
|
|
34
36
|
aria_described_by = aria_described_by.join(" ")
|
|
35
37
|
end
|
|
36
38
|
%>
|
|
@@ -19,10 +19,11 @@ examples:
|
|
|
19
19
|
data:
|
|
20
20
|
html_for: news-title
|
|
21
21
|
title: Writing a news title
|
|
22
|
+
guidance_id: news-title-guidance
|
|
22
23
|
content: |
|
|
23
24
|
<p>The title must make clear what the content offers users. Use the words your users do to help them find this. Avoid wordplay or teases.</p>
|
|
24
25
|
block: |
|
|
25
26
|
<div class="govuk-form-group">
|
|
26
27
|
<label class="gem-c-label govuk-label" for="news-title">News title</label>
|
|
27
|
-
<input id="news-title" type="text" class="gem-c-input govuk-input">
|
|
28
|
+
<input id="news-title" type="text" class="gem-c-input govuk-input" aria-describedby="news-title-guidance">
|
|
28
29
|
</div>
|
|
@@ -76,3 +76,15 @@ examples:
|
|
|
76
76
|
name: "maxlength"
|
|
77
77
|
value: "You can't type more"
|
|
78
78
|
maxlength: 19
|
|
79
|
+
with_aria_attributes:
|
|
80
|
+
description: Use `describedby` when the textarea is described by an element outside the component; for example, when used in conjunction with a [contextual guidance](/component-guide/contextual_guidance).
|
|
81
|
+
embed: |
|
|
82
|
+
<%= component %>
|
|
83
|
+
<p class="govuk-body" id="contextual-guidance">The title must make clear what the content offers users. Use the words your users do to help them find this. Avoid wordplay or teases.</p>
|
|
84
|
+
data:
|
|
85
|
+
label:
|
|
86
|
+
text: "Title"
|
|
87
|
+
bold: true
|
|
88
|
+
name: "described"
|
|
89
|
+
rows: 2
|
|
90
|
+
describedby: "contextual-guidance"
|
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: 21.
|
|
4
|
+
version: 21.15.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: 2019-12-
|
|
11
|
+
date: 2019-12-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: gds-api-adapters
|