diff --git a/package-lock.json b/package-lock.json index ae580356b..b9bd8ccd2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@aws-sdk/client-sns": "^3.985.0", "@defra/forms-engine-plugin": "^4.0.54", - "@defra/forms-model": "^3.0.611", + "@defra/forms-model": "^3.0.614", "@defra/hapi-tracing": "^1.30.0", "@elastic/ecs-pino-format": "^1.5.0", "@hapi/boom": "^10.0.1", @@ -3037,13 +3037,13 @@ } }, "node_modules/@defra/forms-engine-plugin": { - "version": "4.0.54", - "resolved": "https://registry.npmjs.org/@defra/forms-engine-plugin/-/forms-engine-plugin-4.0.54.tgz", - "integrity": "sha512-PIXIuLjvgg+Tph642msVwGu1Vaxe1+/pErxGfI6s9MDvxj7fWOyUm+oq/RvfKhaw3BPINzQHq6QE7RtKnlYUBg==", + "version": "4.0.55", + "resolved": "https://registry.npmjs.org/@defra/forms-engine-plugin/-/forms-engine-plugin-4.0.55.tgz", + "integrity": "sha512-I/UdLzWLyi2qPMWHKuqffnysahtFC7V0sx3WGQJKlNqbHpG9/iN5yTTok1qYjCbIS8qdXNV4grMyvZL2gcXk8w==", "hasInstallScript": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { - "@defra/forms-model": "^3.0.611", + "@defra/forms-model": "^3.0.614", "@defra/hapi-tracing": "^1.29.0", "@defra/interactive-map": "^0.0.4-alpha", "@elastic/ecs-pino-format": "^1.5.0", @@ -3149,9 +3149,9 @@ } }, "node_modules/@defra/forms-model": { - "version": "3.0.611", - "resolved": "https://registry.npmjs.org/@defra/forms-model/-/forms-model-3.0.611.tgz", - "integrity": "sha512-QDOP0p2BRjJSjrQ/S0Mgd6QqwvOyRH8ByhKgzST8FSkn1CF88aEblSfqe506vd4Di0aS+EXzv1AVIitgxBQJMw==", + "version": "3.0.614", + "resolved": "https://registry.npmjs.org/@defra/forms-model/-/forms-model-3.0.614.tgz", + "integrity": "sha512-8fxdV8enQhHLuC9NVCG1c/ez1ClD538bgNpw4yEarZKBoBeBwLeFJWIwWB7i94w7z6kglgbuQ76ufBxXDMYYkQ==", "license": "OGL-UK-3.0", "dependencies": { "@joi/date": "^2.1.1", diff --git a/package.json b/package.json index 7e0035d53..a37cc6e61 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "dependencies": { "@aws-sdk/client-sns": "^3.985.0", "@defra/forms-engine-plugin": "^4.0.54", - "@defra/forms-model": "^3.0.611", + "@defra/forms-model": "^3.0.614", "@defra/hapi-tracing": "^1.30.0", "@elastic/ecs-pino-format": "^1.5.0", "@hapi/boom": "^10.0.1", diff --git a/src/config/index.ts b/src/config/index.ts index 316a8e959..60ca367b4 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -321,7 +321,15 @@ export const config = convict({ format: Boolean, default: false, env: 'USE_MAPS_FEATURE' - } + }, + + feedbackViaEmail: { + doc: 'The email address (not including the mailto prefix) for feedback when the built-in CSAT form is disabled.', + format: String, + nullable: false, + default: 'defraforms@defra.gov.uk', + env: 'FEEDBACK_VIA_EMAIL' + } as SchemaObj }) config.validate({ allowed: 'strict' }) diff --git a/src/server/plugins/error-preview/error-preview.test.js b/src/server/plugins/error-preview/error-preview.test.js index c28283d9b..5312ce78c 100644 --- a/src/server/plugins/error-preview/error-preview.test.js +++ b/src/server/plugins/error-preview/error-preview.test.js @@ -47,17 +47,17 @@ describe('Error preview route', () => { 'govuk-error-summary__title govuk-!-margin-bottom-2' ) - expect($links[3].textContent).toBe('Enter [short description]') + expect($links[4].textContent).toBe('Enter [short description]') expect($headings[3].textContent.trim()).toBe('If you set answer limits') expect($headings[3]).toHaveClass( 'govuk-error-summary__title govuk-!-margin-bottom-2' ) - expect($links[4].textContent).toBe( + expect($links[5].textContent).toBe( '[short description] must be [min length] characters or more' ) - expect($links[5].textContent).toBe( + expect($links[6].textContent).toBe( '[short description] must be [max length] characters or less' ) }) diff --git a/src/server/plugins/nunjucks/context.js b/src/server/plugins/nunjucks/context.js index 116a08740..e2dfd870d 100644 --- a/src/server/plugins/nunjucks/context.js +++ b/src/server/plugins/nunjucks/context.js @@ -53,7 +53,8 @@ export function context(request) { serviceBannerText: config.get('serviceBannerText'), serviceName: config.get('serviceName'), serviceVersion: config.get('serviceVersion'), - useMapsFeature: config.get('useMapsFeature') + useMapsFeature: config.get('useMapsFeature'), + feedbackViaEmail: config.get('feedbackViaEmail') }, cspNonce: request?.plugins.blankie?.nonces?.script, currentPath: request ? `${request.path}${request.url.search}` : undefined, diff --git a/src/server/views/layout.html b/src/server/views/layout.html index e9aae34af..8d41aa14d 100644 --- a/src/server/views/layout.html +++ b/src/server/views/layout.html @@ -144,9 +144,15 @@ {% set feedbackLink = feedbackLink or config.feedbackLink %} {% if phaseTag and not hidePhaseBanner %} {% set feedbackLinkHtml -%} - - give your feedback (opens in new tab) - + {% if feedbackLink %} + + give your feedback (opens in new tab) + + {% else %} + + give your feedback by email + + {% endif %} {%- endset %} {{ govukPhaseBanner({