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