govuk_publishing_components 24.10.3 → 24.11.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/accordion.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/components/feedback.js +142 -104
- data/app/assets/javascripts/govuk_publishing_components/components/reorderable-list.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +2 -2
- data/app/assets/javascripts/govuk_publishing_components/lib/trigger-event.js +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/_all_components_print.scss +0 -11
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_attachment.scss +2 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_back-link.scss +2 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_button.scss +0 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_feedback.scss +2 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_layout-footer.scss +2 -6
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_layout-header.scss +2 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_metadata.scss +2 -6
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_search.scss +2 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_share-links.scss +2 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_skip-link.scss +2 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav-header.scss +0 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_subscription-links.scss +2 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_translation-nav.scss +2 -3
- data/app/views/govuk_publishing_components/components/_attachment.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_back_link.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_button.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_feedback.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_layout_footer.html.erb +2 -2
- data/app/views/govuk_publishing_components/components/_machine_readable_metadata.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_metadata.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_print_link.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_search.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_share_links.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_skip_link.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_step_by_step_nav.html.erb +2 -2
- data/app/views/govuk_publishing_components/components/_subscription_links.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_translation_nav.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/docs/feedback.yml +2 -0
- data/app/views/govuk_publishing_components/components/layout_header/_navigation_items.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/metadata/_sentence.html.erb +2 -2
- data/config/locales/ar.yml +123 -0
- data/config/locales/az.yml +123 -0
- data/config/locales/be.yml +123 -0
- data/config/locales/bg.yml +123 -0
- data/config/locales/bn.yml +123 -0
- data/config/locales/cs.yml +123 -0
- data/config/locales/cy.yml +115 -6
- data/config/locales/da.yml +123 -0
- data/config/locales/de.yml +123 -0
- data/config/locales/dr.yml +123 -0
- data/config/locales/el.yml +123 -0
- data/config/locales/en.yml +109 -109
- data/config/locales/es-419.yml +123 -0
- data/config/locales/es.yml +123 -0
- data/config/locales/et.yml +120 -0
- data/config/locales/fa.yml +123 -0
- data/config/locales/fi.yml +123 -0
- data/config/locales/fr.yml +120 -0
- data/config/locales/gd.yml +123 -0
- data/config/locales/gu.yml +123 -0
- data/config/locales/he.yml +123 -0
- data/config/locales/hi.yml +123 -0
- data/config/locales/hr.yml +123 -0
- data/config/locales/hu.yml +123 -0
- data/config/locales/hy.yml +123 -0
- data/config/locales/id.yml +123 -0
- data/config/locales/is.yml +123 -0
- data/config/locales/it.yml +123 -0
- data/config/locales/ja.yml +123 -0
- data/config/locales/ka.yml +123 -0
- data/config/locales/kk.yml +123 -0
- data/config/locales/ko.yml +123 -0
- data/config/locales/lt.yml +123 -0
- data/config/locales/lv.yml +123 -0
- data/config/locales/ms.yml +123 -0
- data/config/locales/mt.yml +123 -0
- data/config/locales/nl.yml +123 -0
- data/config/locales/no.yml +124 -1
- data/config/locales/pa-pk.yml +123 -0
- data/config/locales/pa.yml +123 -0
- data/config/locales/pl.yml +123 -0
- data/config/locales/ps.yml +123 -0
- data/config/locales/pt.yml +123 -0
- data/config/locales/ro.yml +123 -0
- data/config/locales/ru.yml +123 -0
- data/config/locales/si.yml +123 -0
- data/config/locales/sk.yml +123 -0
- data/config/locales/sl.yml +123 -0
- data/config/locales/so.yml +123 -0
- data/config/locales/sq.yml +123 -0
- data/config/locales/sr.yml +123 -0
- data/config/locales/sv.yml +123 -0
- data/config/locales/sw.yml +123 -0
- data/config/locales/ta.yml +123 -0
- data/config/locales/th.yml +123 -0
- data/config/locales/tk.yml +123 -0
- data/config/locales/tr.yml +123 -0
- data/config/locales/uk.yml +123 -0
- data/config/locales/ur.yml +123 -0
- data/config/locales/uz.yml +123 -0
- data/config/locales/vi.yml +123 -0
- data/config/locales/zh-hk.yml +123 -0
- data/config/locales/zh-tw.yml +123 -0
- data/config/locales/zh.yml +123 -0
- data/lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_taxons.rb +1 -2
- data/lib/govuk_publishing_components/presenters/content_item.rb +4 -0
- data/lib/govuk_publishing_components/presenters/machine_readable/page.rb +4 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +7 -16
- data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +4 -15
- data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json +3 -3
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/README.md +15 -0
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +40 -22
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/macro-options.json +6 -6
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/template.njk +15 -5
- data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +2 -2
- data/node_modules/govuk-frontend/govuk/components/details/_index.scss +5 -1
- data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +13 -14
- data/node_modules/govuk-frontend/govuk/components/file-upload/macro-options.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +14 -19
- data/node_modules/govuk-frontend/govuk/components/header/_index.scss +39 -21
- data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/phase-banner/_index.scss +1 -1
- data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +3 -3
- data/node_modules/govuk-frontend/govuk/components/select/macro-options.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +1 -1
- data/node_modules/govuk-frontend/govuk/components/tabs/_index.scss +1 -6
- data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +10 -0
- data/node_modules/govuk-frontend/govuk/core/_links.scss +8 -0
- data/node_modules/govuk-frontend/govuk/helpers/_links.scss +153 -38
- data/node_modules/govuk-frontend/govuk/settings/_all.scss +2 -0
- data/node_modules/govuk-frontend/govuk/settings/_links.scss +62 -0
- data/node_modules/govuk-frontend/package.json +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78e0df66823b7cc209d7d062f04e17ce65954ee5c06a965fe18912240cc687fd
|
4
|
+
data.tar.gz: b527515c2c9211e77a392c8891bd9ca476782681a63fd05e43d9c0aa2f3b8e7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a458245e3e6f8f5a5c3b6fb5e3c8eabb3ea0b74b201dde838f2b8a600ea0b4709ae5c01dbadd1d3b55148d1cc95d38da4dc2843805d46daa09fcb78e417a2f46
|
7
|
+
data.tar.gz: 0b63b8847309278957552d167763f3fa26077a7406a370d9e3edebbf5173c6978c30c75990654a511a91f99d00c2b64ad4d08fc72e7ff71cfbd9b163d8c4f3cf
|
@@ -47,7 +47,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
47
47
|
this.initSectionHeaders()
|
48
48
|
|
49
49
|
// Feature flag for anchor tag navigation used on manuals
|
50
|
-
if (this.$module.getAttribute('data-anchor-navigation')) {
|
50
|
+
if (this.$module.getAttribute('data-anchor-navigation') === 'true') {
|
51
51
|
this.openByAnchorOnLoad()
|
52
52
|
this.addEventListenersForAnchors()
|
53
53
|
}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
/*
|
2
|
-
|
1
|
+
/* global XMLHttpRequest, FormData */
|
3
2
|
window.GOVUK = window.GOVUK || {}
|
4
3
|
window.GOVUK.Modules = window.GOVUK.Modules || {};
|
5
4
|
|
@@ -11,53 +10,56 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
11
10
|
this.element = $element[0]
|
12
11
|
this.somethingIsWrongForm = this.element.querySelector('#something-is-wrong')
|
13
12
|
this.surveyForm = this.element.querySelector('#page-is-not-useful')
|
14
|
-
this
|
15
|
-
this
|
16
|
-
this
|
17
|
-
this
|
18
|
-
this.$closeForms = $element.find('.js-close-form')
|
13
|
+
this.prompt = this.element.querySelector('.js-prompt')
|
14
|
+
this.forms = this.element.querySelectorAll('.js-feedback-form')
|
15
|
+
this.toggleForms = this.element.querySelectorAll('.js-toggle-form')
|
16
|
+
this.closeForms = this.element.querySelectorAll('.js-close-form')
|
19
17
|
this.activeForm = false
|
20
|
-
this
|
21
|
-
this
|
22
|
-
this
|
23
|
-
this
|
24
|
-
this
|
25
|
-
this
|
26
|
-
|
27
|
-
|
28
|
-
this.$surveyWrapper = $element.find('#survey-wrapper')
|
29
|
-
|
30
|
-
var that = this
|
18
|
+
this.pageIsUsefulButton = this.element.querySelector('.js-page-is-useful')
|
19
|
+
this.pageIsNotUsefulButton = this.element.querySelector('.js-page-is-not-useful')
|
20
|
+
this.somethingIsWrongButton = this.element.querySelector('.js-something-is-wrong')
|
21
|
+
this.promptQuestions = this.element.querySelectorAll('.js-prompt-questions')
|
22
|
+
this.promptSuccessMessage = this.element.querySelector('.js-prompt-success')
|
23
|
+
this.surveyWrapper = this.element.querySelector('#survey-wrapper')
|
24
|
+
|
25
|
+
var thisModule = this
|
31
26
|
var jshiddenClass = 'js-hidden'
|
32
27
|
|
33
28
|
setInitialAriaAttributes()
|
34
29
|
setHiddenValues()
|
35
30
|
|
36
|
-
this
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
31
|
+
for (var j = 0; j < this.toggleForms.length; j++) {
|
32
|
+
this.toggleForms[j].addEventListener('click', function (e) {
|
33
|
+
e.preventDefault()
|
34
|
+
var el = e.target
|
35
|
+
toggleForm(el.getAttribute('aria-controls'))
|
36
|
+
trackEvent(getTrackEventParams(el))
|
37
|
+
updateAriaAttributes(el)
|
38
|
+
})
|
39
|
+
}
|
42
40
|
|
43
|
-
this
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
41
|
+
for (var i = 0; i < this.closeForms.length; i++) {
|
42
|
+
this.closeForms[i].addEventListener('click', function (e) {
|
43
|
+
e.preventDefault()
|
44
|
+
var el = e.target
|
45
|
+
var formToToggle = el.getAttribute('aria-controls')
|
46
|
+
toggleForm(formToToggle)
|
47
|
+
trackEvent(getTrackEventParams(el))
|
48
|
+
setInitialAriaAttributes()
|
49
|
+
revealInitialPrompt()
|
50
|
+
var refocusClass = '.js-' + formToToggle
|
51
|
+
thisModule.element.querySelector(refocusClass).focus()
|
52
|
+
})
|
53
|
+
}
|
52
54
|
|
53
|
-
this
|
55
|
+
this.pageIsUsefulButton.addEventListener('click', function (e) {
|
54
56
|
e.preventDefault()
|
55
|
-
trackEvent(getTrackEventParams(
|
57
|
+
trackEvent(getTrackEventParams(thisModule.pageIsUsefulButton))
|
56
58
|
showFormSuccess()
|
57
59
|
revealInitialPrompt()
|
58
60
|
})
|
59
61
|
|
60
|
-
this
|
62
|
+
this.pageIsNotUsefulButton.addEventListener('click', function (e) {
|
61
63
|
var gaClientId
|
62
64
|
var dummyGaClientId = '111111111.1111111111'
|
63
65
|
if (window.GOVUK.cookie('_ga') === null || window.GOVUK.cookie('_ga') === '') {
|
@@ -68,95 +70,129 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
68
70
|
setHiddenValuesNotUsefulForm(gaClientId)
|
69
71
|
})
|
70
72
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
73
|
+
// much of the JS needed to support sending the form contents via this script is
|
74
|
+
// unsupported by IE, even IE11. This check causes IE to not intercept form submits
|
75
|
+
// and let them happen normally, which is handled already by the backend
|
76
|
+
if (typeof window.URLSearchParams === 'function') {
|
77
|
+
for (var f = 0; f < this.forms.length; f++) {
|
78
|
+
this.forms[f].addEventListener('submit', function (e) {
|
79
|
+
e.preventDefault()
|
80
|
+
var $form = e.target
|
81
|
+
var xhr = new XMLHttpRequest()
|
82
|
+
var url = $form.getAttribute('action')
|
83
|
+
var params = new FormData($form)
|
84
|
+
params = new URLSearchParams(params).toString()
|
85
|
+
|
86
|
+
xhr.open('POST', url, true)
|
87
|
+
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
|
88
|
+
|
89
|
+
xhr.onreadystatechange = function () {
|
90
|
+
if (xhr.readyState === 4 && xhr.status === 200) {
|
91
|
+
trackEvent(getTrackEventParams($form))
|
92
|
+
showFormSuccess(xhr.message)
|
93
|
+
revealInitialPrompt()
|
94
|
+
setInitialAriaAttributes()
|
95
|
+
thisModule.activeForm.classList.toggle(jshiddenClass)
|
96
|
+
} else {
|
97
|
+
showError(xhr)
|
98
|
+
enableSubmitFormButton($form)
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
disableSubmitFormButton($form)
|
103
|
+
xhr.send(params)
|
104
|
+
})
|
105
|
+
}
|
106
|
+
}
|
92
107
|
|
93
108
|
function disableSubmitFormButton ($form) {
|
94
|
-
$form.
|
109
|
+
var formButton = $form.querySelector('[type="submit"]')
|
110
|
+
formButton.setAttribute('disabled', true)
|
95
111
|
}
|
96
112
|
|
97
113
|
function enableSubmitFormButton ($form) {
|
98
|
-
$form.
|
114
|
+
var formButton = $form.querySelector('[type="submit"]')
|
115
|
+
formButton.removeAttribute('disabled')
|
99
116
|
}
|
100
117
|
|
101
118
|
function setInitialAriaAttributes () {
|
102
|
-
|
103
|
-
|
104
|
-
|
119
|
+
for (var i = 0; i < thisModule.forms.length; i++) {
|
120
|
+
thisModule.forms[i].setAttribute('aria-hidden', true)
|
121
|
+
}
|
122
|
+
thisModule.pageIsNotUsefulButton.setAttribute('aria-expanded', false)
|
123
|
+
thisModule.somethingIsWrongButton.setAttribute('aria-expanded', false)
|
105
124
|
}
|
106
125
|
|
107
126
|
function setHiddenValues () {
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
127
|
+
var javascriptEnabled = document.createElement('input')
|
128
|
+
javascriptEnabled.setAttribute('type', 'hidden')
|
129
|
+
javascriptEnabled.setAttribute('name', 'javascript_enabled')
|
130
|
+
javascriptEnabled.setAttribute('value', true)
|
131
|
+
thisModule.somethingIsWrongForm.appendChild(javascriptEnabled)
|
132
|
+
|
133
|
+
var referrer = document.createElement('input')
|
134
|
+
referrer.setAttribute('type', 'hidden')
|
135
|
+
referrer.setAttribute('name', 'referrer')
|
136
|
+
referrer.setAttribute('value', document.referrer || 'unknown')
|
137
|
+
thisModule.somethingIsWrongForm.appendChild(referrer)
|
138
|
+
thisModule.somethingIsWrongForm.invalidInfoError = [
|
139
|
+
'<h2>Sorry, we’re unable to send your message as you haven’t given us any information.</h2>',
|
140
|
+
' <p>Please tell us what you were doing or what went wrong</p>'
|
115
141
|
].join('')
|
116
142
|
}
|
117
143
|
|
118
144
|
function setHiddenValuesNotUsefulForm (gaClientId) {
|
119
145
|
var currentPathName = window.location.pathname.replace(/[^\s=?&]+(?:@|%40)[^\s=?&]+/, '[email]')
|
120
146
|
var finalPathName = encodeURI(currentPathName)
|
121
|
-
|
122
|
-
'<h2>',
|
123
|
-
'
|
124
|
-
'</h2>',
|
125
|
-
'<p>Enter an email address in the correct format, like name@example.com</p>'
|
147
|
+
thisModule.surveyForm.invalidInfoError = [
|
148
|
+
'<h2>Sorry, we’re unable to send your message as you haven’t given us a valid email address.</h2>',
|
149
|
+
' <p>Enter an email address in the correct format, like name@example.com</p>'
|
126
150
|
].join('')
|
127
151
|
if (document.querySelectorAll('[name="email_survey_signup[ga_client_id]"]').length === 0) {
|
128
|
-
|
152
|
+
var hiddenInput = document.createElement('input')
|
153
|
+
hiddenInput.setAttribute('type', 'hidden')
|
154
|
+
hiddenInput.setAttribute('name', 'email_survey_signup[ga_client_id]')
|
155
|
+
hiddenInput.setAttribute('value', gaClientId || '0')
|
156
|
+
thisModule.surveyForm.appendChild(hiddenInput)
|
129
157
|
}
|
130
158
|
|
131
159
|
if (document.querySelectorAll('.gem-c-feedback__email-link#take-survey').length === 0) {
|
132
|
-
|
160
|
+
var takeSurvey = document.createElement('a')
|
161
|
+
takeSurvey.setAttribute('href', 'https://www.smartsurvey.co.uk/s/gov-uk-banner/?c=' + finalPathName + '&gcl=' + gaClientId)
|
162
|
+
takeSurvey.setAttribute('class', 'gem-c-feedback__email-link govuk-link')
|
163
|
+
takeSurvey.setAttribute('id', 'take-survey')
|
164
|
+
takeSurvey.setAttribute('target', '_blank')
|
165
|
+
takeSurvey.setAttribute('rel', 'noopener noreferrer')
|
166
|
+
takeSurvey.innerHTML = 'Don’t have an email address?'
|
167
|
+
thisModule.surveyWrapper.appendChild(takeSurvey)
|
133
168
|
}
|
134
169
|
}
|
135
170
|
|
136
171
|
function updateAriaAttributes (linkClicked) {
|
137
|
-
linkClicked.
|
138
|
-
|
172
|
+
linkClicked.setAttribute('aria-expanded', true)
|
173
|
+
var controls = linkClicked.getAttribute('aria-controls')
|
174
|
+
var ariaControls = document.querySelector('#' + controls)
|
175
|
+
ariaControls.setAttribute('aria-hidden', false)
|
139
176
|
}
|
140
177
|
|
141
178
|
function toggleForm (formId) {
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
that.$prompt.toggleClass(jshiddenClass)
|
179
|
+
thisModule.activeForm = thisModule.element.querySelector('#' + formId)
|
180
|
+
thisModule.activeForm.classList.toggle(jshiddenClass)
|
181
|
+
thisModule.prompt.classList.toggle(jshiddenClass)
|
146
182
|
|
147
|
-
var formIsVisible = !
|
183
|
+
var formIsVisible = !thisModule.activeForm.classList.contains(jshiddenClass)
|
148
184
|
|
149
185
|
if (formIsVisible) {
|
150
|
-
|
186
|
+
thisModule.activeForm.querySelector('.gem-c-input').focus()
|
151
187
|
} else {
|
152
|
-
|
188
|
+
thisModule.activeForm = false
|
153
189
|
}
|
154
190
|
}
|
155
191
|
|
156
192
|
function getTrackEventParams ($node) {
|
157
193
|
return {
|
158
|
-
category: $node.
|
159
|
-
action: $node.
|
194
|
+
category: $node.getAttribute('data-track-category'),
|
195
|
+
action: $node.getAttribute('data-track-action')
|
160
196
|
}
|
161
197
|
}
|
162
198
|
|
@@ -168,40 +204,42 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
168
204
|
|
169
205
|
function showError (error) {
|
170
206
|
var genericError = [
|
171
|
-
'<h2>',
|
172
|
-
'
|
173
|
-
'</h2>',
|
174
|
-
'<p>If the problem persists, we have other ways for you to provide',
|
207
|
+
'<h2>Sorry, we’re unable to receive your message right now.</h2>',
|
208
|
+
' <p>If the problem persists, we have other ways for you to provide',
|
175
209
|
' feedback on the <a href="/contact/govuk">contact page</a>.</p>'
|
176
210
|
].join('')
|
177
211
|
// if the response is not a 404 or 500, show the error message if it exists
|
178
212
|
// otherwise show the generic message
|
179
|
-
if (
|
180
|
-
|
181
|
-
|
182
|
-
|
213
|
+
if ('response' in error) {
|
214
|
+
if (typeof error.response === 'object' && error.response !== null) {
|
215
|
+
error = error.response.message === 'email survey sign up failure' ? genericError : error.response.message
|
216
|
+
} else {
|
183
217
|
error = genericError
|
184
218
|
}
|
185
219
|
} else if (error.status === 422) {
|
186
220
|
// there's clobbering by nginx on all 422 requests, which is why the response returns a rendered html page instead of the expected JSON
|
187
|
-
// this is a temporary workaround to ensure that
|
188
|
-
error =
|
221
|
+
// this is a temporary workaround to ensure that we are displaying relevant error messages to the users
|
222
|
+
error = thisModule.activeForm.invalidInfoError || genericError
|
189
223
|
} else {
|
190
|
-
// for all other, show generic error
|
191
224
|
error = genericError
|
192
225
|
}
|
193
|
-
var $errors =
|
194
|
-
$errors.
|
226
|
+
var $errors = thisModule.activeForm.querySelector('.js-errors')
|
227
|
+
$errors.innerHTML = error
|
228
|
+
$errors.classList.remove(jshiddenClass)
|
229
|
+
$errors.focus()
|
195
230
|
}
|
196
231
|
|
197
232
|
function showFormSuccess () {
|
198
|
-
|
199
|
-
|
233
|
+
for (var i = 0; i < thisModule.promptQuestions.length; i++) {
|
234
|
+
thisModule.promptQuestions[i].classList.add(jshiddenClass)
|
235
|
+
}
|
236
|
+
thisModule.promptSuccessMessage.classList.remove(jshiddenClass)
|
237
|
+
thisModule.promptSuccessMessage.focus()
|
200
238
|
}
|
201
239
|
|
202
240
|
function revealInitialPrompt () {
|
203
|
-
|
204
|
-
|
241
|
+
thisModule.prompt.classList.remove(jshiddenClass)
|
242
|
+
thisModule.prompt.focus()
|
205
243
|
}
|
206
244
|
}
|
207
245
|
}
|
@@ -98,7 +98,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
98
98
|
event = new window.CustomEvent(eventName, params)
|
99
99
|
} else {
|
100
100
|
event = document.createEvent('CustomEvent')
|
101
|
-
event.initCustomEvent(eventName, params.bubbles, params.cancelable)
|
101
|
+
event.initCustomEvent(eventName, params.bubbles, params.cancelable, null)
|
102
102
|
}
|
103
103
|
|
104
104
|
element.dispatchEvent(event)
|
@@ -74,7 +74,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
74
74
|
|
75
75
|
Gemstepnav.prototype.addShowHideAllButton = function () {
|
76
76
|
var showall = document.createElement('div')
|
77
|
-
showall.className = 'gem-c-step-nav__controls'
|
77
|
+
showall.className = 'gem-c-step-nav__controls govuk-!-display-none-print'
|
78
78
|
showall.innerHTML = '<button aria-expanded="false" class="gem-c-step-nav__button gem-c-step-nav__button--controls js-step-controls-button">' +
|
79
79
|
'<span class="gem-c-step-nav__button-text gem-c-step-nav__button-text--all js-step-controls-button-text">' + this.$module.actions.showAllText + '</span>' +
|
80
80
|
'<span class="gem-c-step-nav__chevron js-step-controls-button-icon">' + this.$module.downChevronSvg + '</span>' +
|
@@ -98,7 +98,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
98
98
|
var commaSpan = document.createElement('span')
|
99
99
|
var thisSectionSpan = document.createElement('span')
|
100
100
|
|
101
|
-
showHideSpan.className = 'gem-c-step-nav__toggle-link js-toggle-link'
|
101
|
+
showHideSpan.className = 'gem-c-step-nav__toggle-link js-toggle-link govuk-!-display-none-print'
|
102
102
|
showHideSpanText.className = 'gem-c-step-nav__button-text js-toggle-link-text'
|
103
103
|
showHideSpanIcon.className = 'gem-c-step-nav__chevron js-toggle-link-icon'
|
104
104
|
commaSpan.className = 'govuk-visually-hidden'
|
@@ -10,7 +10,7 @@
|
|
10
10
|
event = new window.CustomEvent(eventName, params)
|
11
11
|
} else {
|
12
12
|
event = document.createEvent('CustomEvent')
|
13
|
-
event.initCustomEvent(eventName, params.bubbles, params.cancelable)
|
13
|
+
event.initCustomEvent(eventName, params.bubbles, params.cancelable, null)
|
14
14
|
}
|
15
15
|
|
16
16
|
element.dispatchEvent(event)
|
@@ -4,22 +4,11 @@
|
|
4
4
|
@import "govuk_frontend_support";
|
5
5
|
|
6
6
|
@import "components/print/accordion";
|
7
|
-
@import "components/print/attachment";
|
8
|
-
@import "components/print/back-link";
|
9
7
|
@import "components/print/button";
|
10
8
|
@import "components/print/contents-list";
|
11
|
-
@import "components/print/feedback";
|
12
9
|
@import "components/print/govspeak-html-publication";
|
13
10
|
@import "components/print/govspeak";
|
14
|
-
@import "components/print/layout-header";
|
15
|
-
@import "components/print/layout-footer";
|
16
|
-
@import "components/print/metadata";
|
17
|
-
@import "components/print/search";
|
18
|
-
@import "components/print/share-links";
|
19
|
-
@import "components/print/skip-link";
|
20
11
|
@import "components/print/step-by-step-nav-header";
|
21
12
|
@import "components/print/step-by-step-nav";
|
22
|
-
@import "components/print/subscription-links";
|
23
13
|
@import "components/print/textarea";
|
24
14
|
@import "components/print/title";
|
25
|
-
@import "components/print/translation-nav";
|
@@ -1,3 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
}
|
1
|
+
// Left this as an empty file as opposed to deleting it because it is @imported in application print stylesheets for example here:
|
2
|
+
// https://github.com/alphagov/government-frontend/blob/7a0b068a0faa1da07f58acf0b1d3a0aa3e1daf56/app/assets/stylesheets/print.scss#L2
|
@@ -1,3 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
}
|
1
|
+
// Left this as an empty file as opposed to deleting it because it is @imported in application print stylesheets for example here:
|
2
|
+
// https://github.com/alphagov/govuk-account-manager-prototype/blob/7858b55afcddc2f855d909abd051838d95f21f13/app/assets/stylesheets/print.scss#L2
|
@@ -1,3 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
}
|
1
|
+
// Left this as an empty file as opposed to deleting it because it is @imported in application print stylesheets for example here:
|
2
|
+
// https://github.com/alphagov/government-frontend/blob/7a0b068a0faa1da07f58acf0b1d3a0aa3e1daf56/app/assets/stylesheets/print.scss#L6
|