hof 22.0.0-timeout-warning-beta.12 → 22.1.0-timeout-warning-sign-in-beta
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.
- package/.nyc_output/9376679c-295d-4483-8c62-60e08528311a.json +1 -0
- package/.nyc_output/processinfo/9376679c-295d-4483-8c62-60e08528311a.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +9 -0
- package/README.md +74 -27
- package/components/session-timeout-warning/index.js +30 -6
- package/config/hof-defaults.js +2 -2
- package/frontend/template-partials/views/exit.html +1 -1
- package/frontend/template-partials/views/partials/session-timeout-warning.html +22 -7
- package/frontend/template-partials/views/save-and-exit.html +19 -0
- package/frontend/themes/gov-uk/client-js/session-timeout-dialog.js +1 -1
- package/frontend/themes/gov-uk/styles/_session-timeout-dialog.scss +0 -92
- package/package.json +3 -3
- package/sandbox/.env +3 -2
- package/sandbox/apps/sandbox/index.js +3 -1
- package/sandbox/apps/sandbox/translations/en/default.json +12 -6
- package/sandbox/apps/sandbox/translations/src/en/exit.json +2 -2
- package/sandbox/apps/sandbox/translations/src/en/pages.json +10 -4
- package/sandbox/public/css/app.css +0 -84
- package/sandbox/server.js +2 -2
- package/.nyc_output/b41c37a9-490c-4262-8cef-5e13a7a48210.json +0 -1
- package/.nyc_output/processinfo/b41c37a9-490c-4262-8cef-5e13a7a48210.json +0 -1
- package/components/session-timeout-warning/Readme.md +0 -45
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"parent":null,"pid":15730,"argv":["/Users/user/.nvm/versions/node/v20.9.0/bin/node","/Users/user/Documents/HO/HOF/hof/node_modules/.bin/_mocha","test/**/*.spec.js","sandbox/test/**/*.spec.js"],"execArgv":[],"cwd":"/Users/user/Documents/HO/HOF/hof","time":1724279017159,"ppid":15726,"coverageFilename":"/Users/user/Documents/HO/HOF/hof/.nyc_output/9376679c-295d-4483-8c62-60e08528311a.json","externalId":"","uuid":"9376679c-295d-4483-8c62-60e08528311a","files":["/Users/user/Documents/HO/HOF/hof/model/index.js","/Users/user/Documents/HO/HOF/hof/model/apis/axios-settings.js","/Users/user/Documents/HO/HOF/hof/components/index.js","/Users/user/Documents/HO/HOF/hof/components/address-lookup/index.js","/Users/user/Documents/HO/HOF/hof/components/address-lookup/default-model.js","/Users/user/Documents/HO/HOF/hof/components/address-lookup/defaults.js","/Users/user/Documents/HO/HOF/hof/components/clear-session/index.js","/Users/user/Documents/HO/HOF/hof/components/combine-and-loop-fields/index.js","/Users/user/Documents/HO/HOF/hof/components/date/index.js","/Users/user/Documents/HO/HOF/hof/components/date/fields.js","/Users/user/Documents/HO/HOF/hof/components/emailer/index.js","/Users/user/Documents/HO/HOF/hof/components/emailer/email-service.js","/Users/user/Documents/HO/HOF/hof/components/emailer/emailer.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/index.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/smtp.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/ses.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/stub.js","/Users/user/Documents/HO/HOF/hof/components/emailer/transports/debug.js","/Users/user/Documents/HO/HOF/hof/components/homeoffice-countries/index.js","/Users/user/Documents/HO/HOF/hof/config/component-defaults.js","/Users/user/Documents/HO/HOF/hof/components/notify/index.js","/Users/user/Documents/HO/HOF/hof/components/notify/notify.js","/Users/user/Documents/HO/HOF/hof/components/summary/index.js","/Users/user/Documents/HO/HOF/hof/config/rate-limits.js","/Users/user/Documents/HO/HOF/hof/middleware/rate-limiter.js","/Users/user/Documents/HO/HOF/hof/config/hof-defaults.js","/Users/user/Documents/HO/HOF/hof/components/session-timeout-warning/index.js","/Users/user/Documents/HO/HOF/hof/lib/logger.js","/Users/user/Documents/HO/HOF/hof/controller/base-controller.js","/Users/user/Documents/HO/HOF/hof/controller/formatting/index.js","/Users/user/Documents/HO/HOF/hof/controller/validation/index.js","/Users/user/Documents/HO/HOF/hof/controller/validation/validators.js","/Users/user/Documents/HO/HOF/hof/controller/validation/email.js","/Users/user/Documents/HO/HOF/hof/controller/validation-error.js","/Users/user/Documents/HO/HOF/hof/utilities/index.js","/Users/user/Documents/HO/HOF/hof/utilities/autofill/index.js","/Users/user/Documents/HO/HOF/hof/utilities/autofill/inputs.js","/Users/user/Documents/HO/HOF/hof/utilities/test-data/index.js","/Users/user/Documents/HO/HOF/hof/utilities/countries.js","/Users/user/Documents/HO/HOF/hof/utilities/helpers/index.js","/Users/user/Documents/HO/HOF/hof/utilities/reqres/index.js","/Users/user/Documents/HO/HOF/hof/config/sanitisation-rules.js","/Users/user/Documents/HO/HOF/hof/controller/formatting/formatters.js","/Users/user/Documents/HO/HOF/hof/controller/index.js","/Users/user/Documents/HO/HOF/hof/controller/behaviour-session.js","/Users/user/Documents/HO/HOF/hof/controller/behaviour-hooks.js","/Users/user/Documents/HO/HOF/hof/controller/controller.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/country-select.js","/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/index.js","/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/template-mixins.js","/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/render.js","/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/helpers.js","/Users/user/Documents/HO/HOF/hof/index.js","/Users/user/Documents/HO/HOF/hof/frontend/index.js","/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/index.js","/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/index.js","/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/config.js","/Users/user/Documents/HO/HOF/hof/frontend/template-partials/index.js","/Users/user/Documents/HO/HOF/hof/frontend/template-partials/translations/index.js","/Users/user/Documents/HO/HOF/hof/frontend/themes/index.js","/Users/user/Documents/HO/HOF/hof/frontend/themes/gov-uk/index.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/index.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/helpers.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/form-focus.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/progressive-reveal.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/validation.js","/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/character-count.js","/Users/user/Documents/HO/HOF/hof/middleware/index.js","/Users/user/Documents/HO/HOF/hof/middleware/cookies.js","/Users/user/Documents/HO/HOF/hof/middleware/errors.js","/Users/user/Documents/HO/HOF/hof/middleware/not-found.js","/Users/user/Documents/HO/HOF/hof/middleware/deep-translate.js","/Users/user/Documents/HO/HOF/hof/lib/markdown.js","/Users/user/Documents/HO/HOF/hof/lib/router.js","/Users/user/Documents/HO/HOF/hof/wizard/index.js","/Users/user/Documents/HO/HOF/hof/wizard/behaviours/index.js","/Users/user/Documents/HO/HOF/hof/wizard/behaviours/complete.js","/Users/user/Documents/HO/HOF/hof/wizard/util/constants.js","/Users/user/Documents/HO/HOF/hof/lib/helpers.js","/Users/user/Documents/HO/HOF/hof/lib/health.js","/Users/user/Documents/HO/HOF/hof/lib/serve-static.js","/Users/user/Documents/HO/HOF/hof/lib/ga-tag.js","/Users/user/Documents/HO/HOF/hof/lib/sessions.js","/Users/user/Documents/HO/HOF/hof/lib/settings.js","/Users/user/Documents/HO/HOF/hof/build/index.js","/Users/user/Documents/HO/HOF/hof/config/builder-defaults.js","/Users/user/Documents/HO/HOF/hof/transpiler/index.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/compile.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/build.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/expand-dirs.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/aggregate.js","/Users/user/Documents/HO/HOF/hof/transpiler/lib/write-files.js","/Users/user/Documents/HO/HOF/hof/model/apis/index.js","/Users/user/Documents/HO/HOF/hof/model/apis/html-to-pdf-converter.js","/Users/user/Documents/HO/HOF/hof/wizard/model.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/back-links.js","/Users/user/Documents/HO/HOF/hof/wizard/util/helpers.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-complete.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-progress.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-session.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/csrf.js","/Users/user/Documents/HO/HOF/hof/sandbox/test/_unit/example_app/sections/summary-data-sections.spec.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/sections/summary-data-sections.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/lib/staticAppealStages.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/fields.js","/Users/user/Documents/HO/HOF/hof/sandbox/test/helpers/utilities.js","/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/international-number.js","/Users/user/Documents/HO/HOF/hof/lib/encryption.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/session.js","/Users/user/Documents/HO/HOF/hof/wizard/middleware/session-model.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"processes":{"b41c37a9-490c-4262-8cef-5e13a7a48210":{"parent":null,"children":[]}},"files":{"/Users/user/Documents/HO/HOF/hof/model/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/model/apis/axios-settings.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/default-model.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/defaults.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/clear-session/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/combine-and-loop-fields/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/date/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/date/fields.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/emailer/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/emailer/email-service.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/emailer/emailer.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/smtp.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/ses.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/stub.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/debug.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/homeoffice-countries/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/config/component-defaults.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/notify/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/notify/notify.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/summary/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/config/rate-limits.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/middleware/rate-limiter.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/config/hof-defaults.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/components/session-timeout-warning/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/base-controller.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/formatting/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/validation/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/validation/validators.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/validation/email.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/validation-error.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/utilities/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/utilities/autofill/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/utilities/autofill/inputs.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/utilities/test-data/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/utilities/countries.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/utilities/helpers/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/utilities/reqres/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/config/sanitisation-rules.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/formatting/formatters.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/behaviour-session.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/behaviour-hooks.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/controller/controller.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/country-select.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/template-mixins.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/render.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/helpers.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/config.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/template-partials/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/template-partials/translations/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/themes/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/themes/gov-uk/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/helpers.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/form-focus.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/progressive-reveal.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/validation.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/character-count.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/middleware/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/middleware/cookies.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/middleware/errors.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/middleware/not-found.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/middleware/deep-translate.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/markdown.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/router.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/behaviours/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/behaviours/complete.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/util/constants.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/helpers.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/health.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/serve-static.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/ga-tag.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/sessions.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/settings.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/logger.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/build/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/config/builder-defaults.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/transpiler/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/compile.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/build.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/expand-dirs.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/aggregate.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/write-files.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/model/apis/index.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/model/apis/html-to-pdf-converter.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/model.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/back-links.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/util/helpers.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-complete.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-progress.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-session.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/csrf.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/sandbox/test/_unit/example_app/sections/summary-data-sections.spec.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/sections/summary-data-sections.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/lib/staticAppealStages.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/fields.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/sandbox/test/helpers/utilities.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/international-number.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/lib/encryption.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/session.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/session-model.js":["b41c37a9-490c-4262-8cef-5e13a7a48210"]},"externalIds":{}}
|
|
1
|
+
{"processes":{"9376679c-295d-4483-8c62-60e08528311a":{"parent":null,"children":[]}},"files":{"/Users/user/Documents/HO/HOF/hof/model/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/model/apis/axios-settings.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/default-model.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/address-lookup/defaults.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/clear-session/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/combine-and-loop-fields/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/date/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/date/fields.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/email-service.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/emailer.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/smtp.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/ses.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/stub.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/emailer/transports/debug.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/homeoffice-countries/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/component-defaults.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/notify/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/notify/notify.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/summary/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/rate-limits.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/rate-limiter.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/hof-defaults.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/components/session-timeout-warning/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/logger.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/base-controller.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/formatting/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/validation/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/validation/validators.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/validation/email.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/validation-error.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/autofill/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/autofill/inputs.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/test-data/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/countries.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/helpers/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/utilities/reqres/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/sanitisation-rules.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/formatting/formatters.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/behaviour-session.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/behaviour-hooks.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/controller/controller.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/country-select.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/template-mixins.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/render.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-mixins/mixins/helpers.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/govuk-template/build/config.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-partials/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/template-partials/translations/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/themes/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/themes/gov-uk/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/helpers.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/form-focus.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/progressive-reveal.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/validation.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/frontend/toolkit/assets/javascript/character-count.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/cookies.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/errors.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/not-found.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/middleware/deep-translate.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/markdown.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/router.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/behaviours/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/behaviours/complete.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/util/constants.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/helpers.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/health.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/serve-static.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/ga-tag.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/sessions.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/settings.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/build/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/config/builder-defaults.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/compile.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/build.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/expand-dirs.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/aggregate.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/transpiler/lib/write-files.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/model/apis/index.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/model/apis/html-to-pdf-converter.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/model.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/back-links.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/util/helpers.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-complete.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-progress.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/check-session.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/csrf.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/test/_unit/example_app/sections/summary-data-sections.spec.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/sections/summary-data-sections.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/lib/staticAppealStages.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/fields.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/test/helpers/utilities.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/sandbox/apps/sandbox/behaviours/international-number.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/lib/encryption.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/session.js":["9376679c-295d-4483-8c62-60e08528311a"],"/Users/user/Documents/HO/HOF/hof/wizard/middleware/session-model.js":["9376679c-295d-4483-8c62-60e08528311a"]},"externalIds":{}}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## 2024, Version 22.1.0, @Rhodine-orleans-lindsay
|
|
2
|
+
* Adds session timeout warning content for save and exit forms
|
|
3
|
+
- user can stay signed in page or save and exit form
|
|
4
|
+
- adds save-and-exit html
|
|
5
|
+
- allows for customisation of save-and-exit page content
|
|
6
|
+
* Fixes accessibility issues
|
|
7
|
+
* Sandbox area for testing hof changes
|
|
8
|
+
* Updates patch and minor dependency versions
|
|
9
|
+
|
|
1
10
|
## 2024, Version 22.0.0, @Rhodine-orleans-lindsay
|
|
2
11
|
* Adds session timeout warning
|
|
3
12
|
- user can stay on page or exit form
|
package/README.md
CHANGED
|
@@ -945,11 +945,11 @@ Using the translation key `fields.field-name.label` will return different values
|
|
|
945
945
|
|
|
946
946
|
# HOF Components
|
|
947
947
|
|
|
948
|
-
##
|
|
948
|
+
## Date Component
|
|
949
949
|
|
|
950
950
|
A component for handling the rendering and processing of 3-input date fields used in HOF Applications.
|
|
951
951
|
|
|
952
|
-
|
|
952
|
+
### Usage
|
|
953
953
|
|
|
954
954
|
In your fields config:
|
|
955
955
|
|
|
@@ -965,7 +965,7 @@ module.exports = {
|
|
|
965
965
|
|
|
966
966
|
The above example will create a new date component with the key `'date-field'` and will apply the validators `required` and `before` (before today).
|
|
967
967
|
|
|
968
|
-
|
|
968
|
+
### Configuration
|
|
969
969
|
|
|
970
970
|
The following optional configuration options are supported:
|
|
971
971
|
|
|
@@ -974,7 +974,7 @@ The following optional configuration options are supported:
|
|
|
974
974
|
- `dayOptional {Boolean}` - day defaults to `01` if omitted. Defaults to `false`
|
|
975
975
|
- `monthOptional {Boolean}` - month defaults to `01` if omitted. If true then also forces `dayOptional` to be true. Defaults to `false`
|
|
976
976
|
|
|
977
|
-
|
|
977
|
+
### Labels
|
|
978
978
|
|
|
979
979
|
The three intermedate fields have fallback labels of Day, Month and Year, however custom labels can be used by including the translation at the following path:
|
|
980
980
|
|
|
@@ -998,13 +998,13 @@ fields.json
|
|
|
998
998
|
}
|
|
999
999
|
```
|
|
1000
1000
|
|
|
1001
|
-
|
|
1001
|
+
## Summary Page Component
|
|
1002
1002
|
|
|
1003
1003
|
HOF behaviour for showing summary pages
|
|
1004
1004
|
|
|
1005
1005
|
The behaviour mixin will create a set of "locals" data which is compatible with [the `confirm` view from `hof-template-partials`](https://github.com/UKHomeOfficeForms/hof-template-partials/blob/master/views/confirm.html).
|
|
1006
1006
|
|
|
1007
|
-
|
|
1007
|
+
### Usage
|
|
1008
1008
|
|
|
1009
1009
|
If no sections config is passed, then the mixin will create a section for each step that has fields, and a row within each section for each field on that step.
|
|
1010
1010
|
|
|
@@ -1043,11 +1043,11 @@ Alternatively, sections can be defined manually as follows:
|
|
|
1043
1043
|
}
|
|
1044
1044
|
```
|
|
1045
1045
|
|
|
1046
|
-
|
|
1046
|
+
### Configuration
|
|
1047
1047
|
|
|
1048
1048
|
The `sections` configuration should be a map of arrays, where the entries in the array are the fields that should be shown within that section.
|
|
1049
1049
|
|
|
1050
|
-
|
|
1050
|
+
#### Field configuration
|
|
1051
1051
|
|
|
1052
1052
|
Fields can be defined as simple strings of the field key, in which case all default configuration will be used.
|
|
1053
1053
|
|
|
@@ -1087,18 +1087,18 @@ The `location-addresses` field is one that the application has setup to aggregat
|
|
|
1087
1087
|
|
|
1088
1088
|
This allows the creation of summary rows based on unknown dynamic user input, i.e. we can not predict in advance how many addresses a user wants to input, what the addresses are and how many categories the user wants to attach to each address. This allows you to easily list them this way.
|
|
1089
1089
|
|
|
1090
|
-
|
|
1090
|
+
### Translations
|
|
1091
1091
|
|
|
1092
1092
|
The content for section headings and field labels will be loaded from translation files based on the keys.
|
|
1093
1093
|
|
|
1094
|
-
|
|
1094
|
+
#### Section headings
|
|
1095
1095
|
|
|
1096
1096
|
Translations for section headings are looked for in the following order:
|
|
1097
1097
|
|
|
1098
1098
|
- `pages.confirm.sections.${key}.header`
|
|
1099
1099
|
- `pages.${key}.header`
|
|
1100
1100
|
|
|
1101
|
-
|
|
1101
|
+
#### Field labels
|
|
1102
1102
|
|
|
1103
1103
|
Translations for field labels are looked for in the following order:
|
|
1104
1104
|
|
|
@@ -1106,11 +1106,11 @@ Translations for field labels are looked for in the following order:
|
|
|
1106
1106
|
- `fields.${key}.label`
|
|
1107
1107
|
- `fields.${key}.legend`
|
|
1108
1108
|
|
|
1109
|
-
|
|
1109
|
+
## Emailer Component
|
|
1110
1110
|
|
|
1111
1111
|
HOF behaviour to send emails
|
|
1112
1112
|
|
|
1113
|
-
|
|
1113
|
+
### Usage
|
|
1114
1114
|
|
|
1115
1115
|
```js
|
|
1116
1116
|
const EmailBehaviour = require('hof').components.emailer;
|
|
@@ -1140,7 +1140,7 @@ steps: {
|
|
|
1140
1140
|
}
|
|
1141
1141
|
```
|
|
1142
1142
|
|
|
1143
|
-
|
|
1143
|
+
### Options
|
|
1144
1144
|
|
|
1145
1145
|
In addition to the options passed to `hof-emailer`, the following options can be used:
|
|
1146
1146
|
|
|
@@ -1159,17 +1159,17 @@ const emailer = EmailBehaviour({
|
|
|
1159
1159
|
});
|
|
1160
1160
|
```
|
|
1161
1161
|
|
|
1162
|
-
|
|
1162
|
+
## HOF Emailer
|
|
1163
1163
|
|
|
1164
1164
|
An emailer service for HOF applications.
|
|
1165
1165
|
|
|
1166
|
-
|
|
1166
|
+
### Installation
|
|
1167
1167
|
|
|
1168
1168
|
```bash
|
|
1169
1169
|
$ npm install hof-emailer --save
|
|
1170
1170
|
```
|
|
1171
1171
|
|
|
1172
|
-
|
|
1172
|
+
### Usage
|
|
1173
1173
|
|
|
1174
1174
|
```js
|
|
1175
1175
|
// first create an emailer instance
|
|
@@ -1192,22 +1192,22 @@ emailer.send(to, body, subject).then(() => {
|
|
|
1192
1192
|
});
|
|
1193
1193
|
```
|
|
1194
1194
|
|
|
1195
|
-
|
|
1195
|
+
### Options
|
|
1196
1196
|
|
|
1197
1197
|
- `from`: <String>: Address to send emails from. Required.
|
|
1198
1198
|
- `transport`: <String>: Select what mechanism to use to send emails. Defaults: 'smtp'.
|
|
1199
1199
|
- `transportOptions`: <Object>: Set the options for the chosen transport, as defined below. Required.
|
|
1200
1200
|
- `layout`: <String>: Optional path to use a custom layout for email content.
|
|
1201
1201
|
|
|
1202
|
-
|
|
1202
|
+
### Transports
|
|
1203
1203
|
|
|
1204
1204
|
The following transport options are available:
|
|
1205
1205
|
|
|
1206
|
-
|
|
1206
|
+
#### `smtp`
|
|
1207
1207
|
|
|
1208
1208
|
[nodemailer-smtp-transport](https://github.com/andris9/nodemailer-smtp-transport)
|
|
1209
1209
|
|
|
1210
|
-
|
|
1210
|
+
##### Options
|
|
1211
1211
|
|
|
1212
1212
|
- `host` <String>: Address of the mailserver. Required.
|
|
1213
1213
|
- `port` <String|Number>: Port of the mailserver. Required.
|
|
@@ -1216,11 +1216,11 @@ The following transport options are available:
|
|
|
1216
1216
|
- `auth.user` <String>: Mailserver authorisation username.
|
|
1217
1217
|
- `auth.pass` <String>: Mailserver authorisation password.
|
|
1218
1218
|
|
|
1219
|
-
|
|
1219
|
+
#### `ses`
|
|
1220
1220
|
|
|
1221
1221
|
[nodemailer-ses-transport](https://github.com/andris9/nodemailer-ses-transport)
|
|
1222
1222
|
|
|
1223
|
-
|
|
1223
|
+
##### Options
|
|
1224
1224
|
|
|
1225
1225
|
- `accessKeyId` <String>: AWS accessKeyId. Required.
|
|
1226
1226
|
- `secretAccessKey` <String>: AWS accessKeyId. Required.
|
|
@@ -1230,18 +1230,18 @@ The following transport options are available:
|
|
|
1230
1230
|
- `rateLimit` <String>
|
|
1231
1231
|
- `maxConnections` <String>
|
|
1232
1232
|
|
|
1233
|
-
|
|
1233
|
+
#### `debug`
|
|
1234
1234
|
|
|
1235
1235
|
A development option to write the html content of the email to a file for inspection.
|
|
1236
1236
|
|
|
1237
1237
|
`transport: 'debug'`
|
|
1238
1238
|
|
|
1239
|
-
|
|
1239
|
+
##### debug options
|
|
1240
1240
|
|
|
1241
1241
|
- `dir` <String>: The location to save html to. Default: `./.emails`. This directory will be created if it does not exist.
|
|
1242
1242
|
- `open` <Boolean>: If set to true, will automatically open the created html file in a browser.
|
|
1243
1243
|
|
|
1244
|
-
|
|
1244
|
+
##### debug example
|
|
1245
1245
|
|
|
1246
1246
|
```
|
|
1247
1247
|
transport: 'debug'
|
|
@@ -1251,10 +1251,57 @@ transportOptions: {
|
|
|
1251
1251
|
}
|
|
1252
1252
|
```
|
|
1253
1253
|
|
|
1254
|
-
|
|
1254
|
+
#### `stub`
|
|
1255
1255
|
|
|
1256
1256
|
Disables sending email. No options are required.
|
|
1257
1257
|
|
|
1258
|
+
## Session Timeout Warning Component
|
|
1259
|
+
HOF component for customising session timeout related pages
|
|
1260
|
+
This feature allows you to customise the content related to the session timeout warning, including the messages displayed in the session timeout warning dialog and on the exit page after a user exits the form due to a session timeout.
|
|
1261
|
+
|
|
1262
|
+
### Usage
|
|
1263
|
+
|
|
1264
|
+
To enable and customize the session timeout behavior, you need to set the component in your project's `hof.settings.json` file:
|
|
1265
|
+
```js
|
|
1266
|
+
"behaviours": [
|
|
1267
|
+
"hof/components/session-timeout-warning"
|
|
1268
|
+
]
|
|
1269
|
+
```
|
|
1270
|
+
|
|
1271
|
+
By default, the framework uses the standard content provided by HOF. If you wish to override this with custom content at the project level, you must set the following variables to `true` in `hof.settings.json`:
|
|
1272
|
+
|
|
1273
|
+
```js
|
|
1274
|
+
behaviours: [
|
|
1275
|
+
require('../').components.sessionTimeoutWarning
|
|
1276
|
+
],
|
|
1277
|
+
sessionTimeoutWarningContent: true,
|
|
1278
|
+
exitFormContent: true
|
|
1279
|
+
```
|
|
1280
|
+
|
|
1281
|
+
### Customising content in `pages.json`
|
|
1282
|
+
Once the variables are set, you can customize the session timeout warning and exit messages in your project's pages.json:
|
|
1283
|
+
|
|
1284
|
+
```json
|
|
1285
|
+
"exit": {
|
|
1286
|
+
"message": "We have cleared your information to keep it secure. Your information has not been saved."
|
|
1287
|
+
},
|
|
1288
|
+
"session-timeout-warning": {
|
|
1289
|
+
"dialog-title": "Your application will close soon",
|
|
1290
|
+
"dialog-text": "If that happens, your progress will not be saved.",
|
|
1291
|
+
"timeout-continue-button": "Stay on this page",
|
|
1292
|
+
"dialog-exit-link": "Exit this form"
|
|
1293
|
+
}
|
|
1294
|
+
```
|
|
1295
|
+
|
|
1296
|
+
### Editing content on the Exit Page Header and Title
|
|
1297
|
+
To edit the exit page's header and title, create an `exit.json` file in your project and set the desired content:
|
|
1298
|
+
```json
|
|
1299
|
+
{
|
|
1300
|
+
"header": "You have left this form",
|
|
1301
|
+
"title": "You have left this form"
|
|
1302
|
+
}
|
|
1303
|
+
```
|
|
1304
|
+
|
|
1258
1305
|
# UTILITIES
|
|
1259
1306
|
|
|
1260
1307
|
# Autofill Utility
|
|
@@ -1,18 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @fileOverview
|
|
4
|
+
* Provides custom behavior for handling session timeout warnings and exit actions. This includes
|
|
5
|
+
* - Resetting the session if the user exits due to a session timeout.
|
|
6
|
+
* - Customizing the session timeout warning dialog content.
|
|
7
|
+
* - Setting custom content and titles on the exit page.
|
|
8
|
+
*
|
|
9
|
+
* @module SessionTimeoutWarningBehavior
|
|
10
|
+
* @requires ../../config/hof-defaults
|
|
11
|
+
* @param {Class} superclass - The class to be extended.
|
|
12
|
+
* @returns {Class} - The extended class with session timeout handling functionality.
|
|
13
|
+
*/
|
|
1
14
|
|
|
2
15
|
'use strict';
|
|
3
16
|
const config = require('../../config/hof-defaults');
|
|
17
|
+
const logger = require('../../lib/logger')(config);
|
|
4
18
|
|
|
5
19
|
module.exports = superclass => class extends superclass {
|
|
6
20
|
configure(req, res, next) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
req.
|
|
21
|
+
try {
|
|
22
|
+
// Reset the session if the user chooses to exit on session timeout warning
|
|
23
|
+
if (req.form.options.route === '/exit') {
|
|
24
|
+
req.sessionModel.reset();
|
|
25
|
+
logger.log('info', 'Session has been reset on exit');
|
|
26
|
+
}
|
|
27
|
+
return super.configure(req, res, next);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
logger.error('Error during session reset:', error);
|
|
30
|
+
return next(error); // Pass the error to the next middleware for centralised handling
|
|
10
31
|
}
|
|
11
|
-
return super.configure(req, res, next);
|
|
12
32
|
}
|
|
13
33
|
|
|
14
34
|
locals(req, res) {
|
|
15
|
-
// set the
|
|
35
|
+
// set the custom session dialog message
|
|
16
36
|
const superLocals = super.locals(req, res);
|
|
17
37
|
if (res.locals.sessionTimeoutWarningContent === true) {
|
|
18
38
|
superLocals.dialogTitle = true;
|
|
@@ -20,8 +40,12 @@ module.exports = superclass => class extends superclass {
|
|
|
20
40
|
superLocals.timeoutContinueButton = true;
|
|
21
41
|
superLocals.dialogExitLink = true;
|
|
22
42
|
}
|
|
23
|
-
|
|
43
|
+
|
|
44
|
+
// set the content on /exit page
|
|
24
45
|
if (req.form.options.route === '/exit' && config.exitFormContent === true) {
|
|
46
|
+
superLocals.exitFormContent = true;
|
|
47
|
+
return superLocals;
|
|
48
|
+
} else if (req.form.options.route === '/exit' && config.exitFormContent === false) {
|
|
25
49
|
superLocals.header = req.translate('exit.header');
|
|
26
50
|
superLocals.title = req.translate('exit.title');
|
|
27
51
|
superLocals.message = req.translate('exit.message');
|
package/config/hof-defaults.js
CHANGED
|
@@ -14,8 +14,8 @@ const defaults = {
|
|
|
14
14
|
getCookies: true,
|
|
15
15
|
getTerms: true,
|
|
16
16
|
getAccessibility: false,
|
|
17
|
-
sessionTimeoutWarningContent:
|
|
18
|
-
exitFormContent:
|
|
17
|
+
sessionTimeoutWarningContent: false,
|
|
18
|
+
exitFormContent: false,
|
|
19
19
|
viewEngine: 'html',
|
|
20
20
|
protocol: process.env.PROTOCOL || 'http',
|
|
21
21
|
noCache: process.env.NO_CACHE || false,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
{{header}}
|
|
4
4
|
{{/header}}
|
|
5
5
|
{{$content}}
|
|
6
|
-
<h2 class="govuk-heading-m">{{#exitFormContent}}{{message}}{{/exitFormContent}}{{^exitFormContent}}{{#t}}
|
|
6
|
+
<h2 class="govuk-heading-m">{{#exitFormContent}}{{#t}}pages.exit.message{{/t}}{{/exitFormContent}}{{^exitFormContent}}{{#t}}{{message}}{{/t}}{{/exitFormContent}}</h2>
|
|
7
7
|
<a href="/" class="govuk-button" role="button">{{#t}}buttons.start-again{{/t}}</a>
|
|
8
8
|
{{/content}}
|
|
9
9
|
{{/layout}}
|
|
@@ -8,15 +8,30 @@
|
|
|
8
8
|
data-url-redirect="/session-timeout" class="modal-dialog dialog" role="dialog"
|
|
9
9
|
aria-live="polite" aria-labelledby="dialog-title" aria-describedby="at-timer">
|
|
10
10
|
<div class="modal-dialog__inner">
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
{{^showSaveAndExit}}
|
|
12
|
+
<h2 id="dialog-title" class="govuk-heading-l">
|
|
13
|
+
{{#dialogTitle}}{{#t}}pages.session-timeout-warning.dialog-title{{/t}}{{/dialogTitle}}{{^dialogTitle}}Your page will time out soon{{/dialogTitle}}
|
|
14
|
+
</h2>
|
|
15
|
+
<div class="govuk-body">
|
|
15
16
|
<div id="timer" class="timer" aria-hidden="true" aria-relevant="additions"></div>
|
|
16
17
|
<div id="at-timer" class="at-timer govuk-visually-hidden" role="status"></div>
|
|
17
|
-
<p class="dialog-text visually-hidden">
|
|
18
|
+
<p class="dialog-text-prefix visually-hidden">To protect your information, this page will time out in </p>
|
|
19
|
+
<p class="dialog-text visually-hidden">{{#dialogText}}{{#t}}pages.session-timeout-warning.dialog-text{{/t}}{{/dialogText}}{{^dialogText}}If that happens, your progress will not be saved.{{/dialogText}}</p>
|
|
18
20
|
</div>
|
|
19
|
-
<button class="govuk-button dialog-button
|
|
20
|
-
<a href="/exit" class="govuk-link dialog-exit-link" role="button">{{#dialogExitLink}}
|
|
21
|
+
<button class="govuk-button dialog-button js-dialog-close" id="timeout-continue-button" data-module="govuk-button">{{#timeoutContinueButton}}{{#t}}pages.session-timeout-warning.timeout-continue-button{{/t}}{{/timeoutContinueButton}}{{^timeoutContinueButton}}Stay on this page{{/timeoutContinueButton}}</button>
|
|
22
|
+
<a href="/exit" class="govuk-link dialog-exit-link" role="button">{{#dialogExitLink}}{{#t}}pages.session-timeout-warning.dialog-exit-link{{/t}}{{/dialogExitLink}}{{^dialogExitLink}}Exit this form{{/dialogExitLink}}</a>
|
|
23
|
+
{{/showSaveAndExit}}
|
|
24
|
+
{{#showSaveAndExit}}
|
|
25
|
+
<h2 id="dialog-title" class="govuk-heading-l">
|
|
26
|
+
{{#dialogTitle}}{{#t}}pages.session-timeout-warning.dialog-title{{/t}}{{/dialogTitle}}{{^dialogTitle}}You will be signed out soon{{/dialogTitle}}
|
|
27
|
+
</h2>
|
|
28
|
+
<div class="govuk-body">
|
|
29
|
+
<div id="timer" class="timer" aria-hidden="true" aria-relevant="additions"></div>
|
|
30
|
+
<div id="at-timer" class="at-timer govuk-visually-hidden" role="status"></div>
|
|
31
|
+
<p class="dialog-text-prefix visually-hidden">To protect your information, you will be signed out in </p>
|
|
32
|
+
</div>
|
|
33
|
+
<button class="govuk-button dialog-button js-dialog-close" id="timeout-continue-button" data-module="govuk-button">{{#timeoutContinueButton}}{{#t}}pages.session-timeout-warning.timeout-continue-button{{/t}}{{/timeoutContinueButton}}{{^timeoutContinueButton}}Stay signed in{{/timeoutContinueButton}}</button>
|
|
34
|
+
<a href="/save-and-exit" class="govuk-link dialog-exit-link" role="button">{{#dialogExitLink}}{{#t}}pages.session-timeout-warning.dialog-exit-link{{/t}}{{/dialogExitLink}}{{^dialogExitLink}}Sign out{{/dialogExitLink}}</a>
|
|
35
|
+
{{/showSaveAndExit}}
|
|
21
36
|
</div>
|
|
22
37
|
</dialog>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{{<layout}}
|
|
2
|
+
{{$journeyHeader}}
|
|
3
|
+
{{#t}}journey.header{{/t}}
|
|
4
|
+
{{/journeyHeader}}
|
|
5
|
+
|
|
6
|
+
{{$propositionHeader}}
|
|
7
|
+
{{> partials-navigation}}
|
|
8
|
+
{{/propositionHeader}}
|
|
9
|
+
|
|
10
|
+
{{$header}}
|
|
11
|
+
{{header}}
|
|
12
|
+
{{/header}}
|
|
13
|
+
|
|
14
|
+
{{$content}}
|
|
15
|
+
<p>{{#t}}pages.save-and-exit.paragraph-1{{/t}}</p>
|
|
16
|
+
<p>{{#t}}pages.save-and-exit.paragraph-2{{/t}}</p>
|
|
17
|
+
<p>{{#t}}pages.save-and-exit.paragraph-3{{/t}} <a href="/" class="govuk-link">start page.</a></p>
|
|
18
|
+
{{/content}}
|
|
19
|
+
{{/layout}}
|
|
@@ -13,7 +13,7 @@ window.GOVUK.sessionDialog = {
|
|
|
13
13
|
$fallBackElement: $('.govuk-timeout-warning-fallback'),
|
|
14
14
|
dialogIsOpenClass: 'dialog-is-open',
|
|
15
15
|
timers: [],
|
|
16
|
-
warningTextPrefix: '
|
|
16
|
+
warningTextPrefix: $('.dialog-text-prefix').text(),
|
|
17
17
|
warningTextSuffix: '.',
|
|
18
18
|
warningText: $('.dialog-text').text(),
|
|
19
19
|
warningTextExtra: '',
|
|
@@ -44,96 +44,6 @@
|
|
|
44
44
|
padding: 20px;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
@media (min-width: 641px) {
|
|
48
|
-
.modal-dialog__inner {
|
|
49
|
-
padding: 30px;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.modal-dialog__inner__text {
|
|
54
|
-
font-family: "nta", Arial, sans-serif;
|
|
55
|
-
font-weight: 400;
|
|
56
|
-
text-transform: none;
|
|
57
|
-
font-size: 16px;
|
|
58
|
-
line-height: 1.25;
|
|
59
|
-
padding-top: 2px;
|
|
60
|
-
padding-bottom: 8px;
|
|
61
|
-
margin-bottom: 20px;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
@media (min-width: 641px) {
|
|
65
|
-
.modal-dialog__inner__text {
|
|
66
|
-
font-size: 19px;
|
|
67
|
-
line-height: 1.31579;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
@media (min-width: 641px) {
|
|
72
|
-
.modal-dialog__inner__text {
|
|
73
|
-
padding-top: 0;
|
|
74
|
-
padding-bottom: 5px;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.modal-dialog__inner__button {
|
|
79
|
-
font-size: 19px;
|
|
80
|
-
margin-top: 10px;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.modal-dialog__inner__link {
|
|
84
|
-
font-family: "nta", Arial, sans-serif;
|
|
85
|
-
font-weight: 400;
|
|
86
|
-
text-transform: none;
|
|
87
|
-
font-size: 16px;
|
|
88
|
-
line-height: 1.25;
|
|
89
|
-
padding-top: 2px;
|
|
90
|
-
padding-bottom: 8px;
|
|
91
|
-
background: none;
|
|
92
|
-
border: none;
|
|
93
|
-
vertical-align: middle;
|
|
94
|
-
margin-top: 20px;
|
|
95
|
-
|
|
96
|
-
&:hover {
|
|
97
|
-
cursor: pointer;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
@media (min-width: 641px) {
|
|
102
|
-
.modal-dialog__inner__link {
|
|
103
|
-
font-size: 19px;
|
|
104
|
-
line-height: 1.31579;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
@media (min-width: 641px) {
|
|
109
|
-
.modal-dialog__inner__link {
|
|
110
|
-
padding-top: 0;
|
|
111
|
-
padding-bottom: 5px;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
@media (max-width: 640px) {
|
|
116
|
-
.modal-dialog__inner__link {
|
|
117
|
-
text-align: center;
|
|
118
|
-
display: block;
|
|
119
|
-
margin-top: 25px;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
@media (min-width: 641px) {
|
|
124
|
-
.modal-dialog__inner__link {
|
|
125
|
-
position: absolute;
|
|
126
|
-
top: 50%;
|
|
127
|
-
transform: translateY(-50%);
|
|
128
|
-
padding: 0;
|
|
129
|
-
margin: 0 0 0 30px;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.modal-dialog__inner__block {
|
|
134
|
-
position: relative;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
47
|
.modal-dialog #dialog-title {
|
|
138
48
|
margin-top: 0;
|
|
139
49
|
}
|
|
@@ -200,13 +110,11 @@ dialog {
|
|
|
200
110
|
.dialog-exit-link {
|
|
201
111
|
@include govuk-font($size: 24);
|
|
202
112
|
display: inline-block;
|
|
203
|
-
margin: 5px;
|
|
204
113
|
|
|
205
114
|
@include govuk-media-query($from: tablet) {
|
|
206
115
|
@include govuk-font($size: 19);
|
|
207
116
|
|
|
208
117
|
position: relative;
|
|
209
|
-
top: 2px;
|
|
210
118
|
padding: 0.526315em 0.789473em 0.263157em;
|
|
211
119
|
line-height: 1.5;
|
|
212
120
|
}
|