govuk_publishing_components 24.10.3 → 24.11.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/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
|