@defra/forms-engine-plugin 0.1.10 → 0.1.12
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/.public/javascripts/file-upload.min.js +1 -1
- package/.public/javascripts/file-upload.min.js.map +1 -1
- package/.public/stylesheets/application.min.css +1 -1
- package/.public/stylesheets/application.min.css.map +1 -1
- package/.server/client/javascripts/file-upload.js +45 -4
- package/.server/client/javascripts/file-upload.js.map +1 -1
- package/.server/client/stylesheets/application.scss +10 -0
- package/.server/config/index.js +3 -14
- package/.server/config/index.js.map +1 -1
- package/.server/server/constants.js +2 -0
- package/.server/server/constants.js.map +1 -1
- package/.server/server/devserver/dxt-devtool-baselayout.html +71 -0
- package/.server/server/forms/register-as-a-unicorn-breeder.json +393 -0
- package/.server/server/forms/register-as-a-unicorn-breeder.yaml +251 -0
- package/.server/server/index.js +12 -17
- package/.server/server/index.js.map +1 -1
- package/.server/server/plugins/engine/components/AutocompleteField.js +2 -0
- package/.server/server/plugins/engine/components/AutocompleteField.js.map +1 -1
- package/.server/server/plugins/engine/components/CheckboxesField.js +3 -4
- package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
- package/.server/server/plugins/engine/components/ComponentCollection.js +37 -16
- package/.server/server/plugins/engine/components/ComponentCollection.js.map +1 -1
- package/.server/server/plugins/engine/components/DatePartsField.js +36 -2
- package/.server/server/plugins/engine/components/DatePartsField.js.map +1 -1
- package/.server/server/plugins/engine/components/EmailAddressField.js +19 -3
- package/.server/server/plugins/engine/components/EmailAddressField.js.map +1 -1
- package/.server/server/plugins/engine/components/FileUploadField.js +44 -4
- package/.server/server/plugins/engine/components/FileUploadField.js.map +1 -1
- package/.server/server/plugins/engine/components/FormComponent.js +14 -2
- package/.server/server/plugins/engine/components/FormComponent.js.map +1 -1
- package/.server/server/plugins/engine/components/ListFormComponent.js +16 -3
- package/.server/server/plugins/engine/components/ListFormComponent.js.map +1 -1
- package/.server/server/plugins/engine/components/Markdown.js +24 -0
- package/.server/server/plugins/engine/components/Markdown.js.map +1 -0
- package/.server/server/plugins/engine/components/MonthYearField.js +30 -2
- package/.server/server/plugins/engine/components/MonthYearField.js.map +1 -1
- package/.server/server/plugins/engine/components/MultilineTextField.js +32 -3
- package/.server/server/plugins/engine/components/MultilineTextField.js.map +1 -1
- package/.server/server/plugins/engine/components/NumberField.js +28 -3
- package/.server/server/plugins/engine/components/NumberField.js.map +1 -1
- package/.server/server/plugins/engine/components/SelectionControlField.js +14 -0
- package/.server/server/plugins/engine/components/SelectionControlField.js.map +1 -1
- package/.server/server/plugins/engine/components/TelephoneNumberField.js +19 -3
- package/.server/server/plugins/engine/components/TelephoneNumberField.js.map +1 -1
- package/.server/server/plugins/engine/components/TextField.js +22 -3
- package/.server/server/plugins/engine/components/TextField.js.map +1 -1
- package/.server/server/plugins/engine/components/UkAddressField.js +29 -0
- package/.server/server/plugins/engine/components/UkAddressField.js.map +1 -1
- package/.server/server/plugins/engine/components/YesNoField.js +18 -0
- package/.server/server/plugins/engine/components/YesNoField.js.map +1 -1
- package/.server/server/plugins/engine/components/helpers.js +16 -0
- package/.server/server/plugins/engine/components/helpers.js.map +1 -1
- package/.server/server/plugins/engine/components/index.js +1 -0
- package/.server/server/plugins/engine/components/index.js.map +1 -1
- package/.server/server/plugins/engine/configureEnginePlugin.js +19 -3
- package/.server/server/plugins/engine/configureEnginePlugin.js.map +1 -1
- package/.server/server/plugins/engine/helpers.js +38 -18
- package/.server/server/plugins/engine/helpers.js.map +1 -1
- package/.server/server/plugins/engine/models/FormModel.js +60 -2
- package/.server/server/plugins/engine/models/FormModel.js.map +1 -1
- package/.server/server/plugins/engine/models/SummaryViewModel.js +3 -2
- package/.server/server/plugins/engine/models/SummaryViewModel.js.map +1 -1
- package/.server/server/plugins/engine/outputFormatters/human/v1.js +1 -1
- package/.server/server/plugins/engine/outputFormatters/human/v1.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/PageController.js +13 -5
- package/.server/server/plugins/engine/pageControllers/PageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.js +2 -2
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/SummaryPageController.js +19 -5
- package/.server/server/plugins/engine/pageControllers/SummaryPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/validationOptions.js +6 -11
- package/.server/server/plugins/engine/pageControllers/validationOptions.js.map +1 -1
- package/.server/server/plugins/engine/plugin.js +32 -20
- package/.server/server/plugins/engine/plugin.js.map +1 -1
- package/.server/server/plugins/engine/services/formsService.js +15 -29
- package/.server/server/plugins/engine/services/formsService.js.map +1 -1
- package/.server/server/plugins/engine/services/localFormsService.js +52 -0
- package/.server/server/plugins/engine/services/localFormsService.js.map +1 -0
- package/.server/server/plugins/engine/services/notifyService.js +1 -4
- package/.server/server/plugins/engine/services/notifyService.js.map +1 -1
- package/.server/server/plugins/engine/services/uploadService.js +5 -3
- package/.server/server/plugins/engine/services/uploadService.js.map +1 -1
- package/.server/server/plugins/engine/types.js.map +1 -1
- package/.server/server/plugins/engine/views/components/html.html +1 -1
- package/.server/server/plugins/engine/views/components/markdown.html +5 -0
- package/.server/server/plugins/engine/views/confirmation.html +1 -1
- package/.server/server/plugins/engine/views/file-upload.html +1 -1
- package/.server/server/plugins/engine/views/index.html +1 -1
- package/.server/server/plugins/engine/views/item-delete.html +1 -1
- package/.server/server/plugins/engine/views/repeat-list-summary.html +1 -1
- package/.server/server/plugins/engine/views/summary.html +8 -2
- package/.server/server/plugins/errorPages.js +4 -26
- package/.server/server/plugins/errorPages.js.map +1 -1
- package/.server/server/plugins/nunjucks/context.js +43 -33
- package/.server/server/plugins/nunjucks/context.js.map +1 -1
- package/.server/server/plugins/nunjucks/context.test.js +23 -28
- package/.server/server/plugins/nunjucks/context.test.js.map +1 -1
- package/.server/server/plugins/nunjucks/enviroment.test.js +6 -3
- package/.server/server/plugins/nunjucks/enviroment.test.js.map +1 -1
- package/.server/server/plugins/nunjucks/types.js +3 -4
- package/.server/server/plugins/nunjucks/types.js.map +1 -1
- package/.server/server/routes/index.js +0 -1
- package/.server/server/routes/index.js.map +1 -1
- package/.server/server/utils/type-utils.js +8 -0
- package/.server/server/utils/type-utils.js.map +1 -0
- package/.server/typings/hapi/index.d.js.map +1 -1
- package/.server/typings/joi/index.d.js.map +1 -1
- package/package.json +4 -3
- package/src/client/javascripts/file-upload.js +60 -4
- package/src/client/stylesheets/application.scss +10 -0
- package/src/config/index.ts +4 -17
- package/src/server/constants.js +2 -0
- package/src/server/devserver/dxt-devtool-baselayout.html +71 -0
- package/src/server/forms/register-as-a-unicorn-breeder.json +393 -0
- package/src/server/forms/register-as-a-unicorn-breeder.yaml +251 -0
- package/src/server/index.test.ts +38 -66
- package/src/server/index.ts +15 -17
- package/src/server/plugins/engine/components/AutocompleteField.test.ts +71 -3
- package/src/server/plugins/engine/components/AutocompleteField.ts +6 -2
- package/src/server/plugins/engine/components/CheckboxesField.test.ts +40 -8
- package/src/server/plugins/engine/components/CheckboxesField.ts +7 -3
- package/src/server/plugins/engine/components/ComponentCollection.ts +45 -18
- package/src/server/plugins/engine/components/DatePartsField.test.ts +13 -4
- package/src/server/plugins/engine/components/DatePartsField.ts +29 -8
- package/src/server/plugins/engine/components/EmailAddressField.test.ts +51 -1
- package/src/server/plugins/engine/components/EmailAddressField.ts +17 -2
- package/src/server/plugins/engine/components/FileUploadField.test.ts +53 -0
- package/src/server/plugins/engine/components/FileUploadField.ts +52 -3
- package/src/server/plugins/engine/components/FormComponent.ts +24 -2
- package/src/server/plugins/engine/components/ListFormComponent.ts +16 -2
- package/src/server/plugins/engine/components/Markdown.test.ts +48 -0
- package/src/server/plugins/engine/components/Markdown.ts +29 -0
- package/src/server/plugins/engine/components/MonthYearField.test.ts +35 -0
- package/src/server/plugins/engine/components/MonthYearField.ts +34 -9
- package/src/server/plugins/engine/components/MultilineTextField.test.ts +83 -5
- package/src/server/plugins/engine/components/MultilineTextField.ts +37 -2
- package/src/server/plugins/engine/components/NumberField.test.ts +24 -2
- package/src/server/plugins/engine/components/NumberField.ts +23 -3
- package/src/server/plugins/engine/components/RadiosField.test.ts +10 -1
- package/src/server/plugins/engine/components/SelectField.test.ts +2 -1
- package/src/server/plugins/engine/components/SelectionControlField.ts +14 -0
- package/src/server/plugins/engine/components/TelephoneNumberField.test.ts +30 -2
- package/src/server/plugins/engine/components/TelephoneNumberField.ts +17 -2
- package/src/server/plugins/engine/components/TextField.test.ts +33 -1
- package/src/server/plugins/engine/components/TextField.ts +17 -2
- package/src/server/plugins/engine/components/UkAddressField.test.ts +46 -3
- package/src/server/plugins/engine/components/UkAddressField.ts +28 -0
- package/src/server/plugins/engine/components/YesNoField.test.ts +9 -1
- package/src/server/plugins/engine/components/YesNoField.ts +24 -0
- package/src/server/plugins/engine/components/helpers.test.ts +24 -0
- package/src/server/plugins/engine/components/helpers.ts +39 -0
- package/src/server/plugins/engine/components/index.ts +1 -0
- package/src/server/plugins/engine/configureEnginePlugin.ts +32 -4
- package/src/server/plugins/engine/helpers.test.ts +71 -20
- package/src/server/plugins/engine/helpers.ts +46 -19
- package/src/server/plugins/engine/models/FormModel.test.ts +91 -1
- package/src/server/plugins/engine/models/FormModel.ts +86 -3
- package/src/server/plugins/engine/models/SummaryViewModel.test.ts +46 -7
- package/src/server/plugins/engine/models/SummaryViewModel.ts +7 -3
- package/src/server/plugins/engine/outputFormatters/human/v1.test.ts +1 -2
- package/src/server/plugins/engine/outputFormatters/human/v1.ts +1 -1
- package/src/server/plugins/engine/pageControllers/FileUploadPageController.test.ts +1 -0
- package/src/server/plugins/engine/pageControllers/PageController.test.ts +9 -6
- package/src/server/plugins/engine/pageControllers/PageController.ts +15 -5
- package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +2 -2
- package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +21 -6
- package/src/server/plugins/engine/pageControllers/validationOptions.ts +31 -17
- package/src/server/plugins/engine/plugin.ts +52 -22
- package/src/server/plugins/engine/services/formsService.js +17 -35
- package/src/server/plugins/engine/services/localFormsService.js +49 -0
- package/src/server/plugins/engine/services/notifyService.ts +1 -2
- package/src/server/plugins/engine/services/uploadService.js +10 -6
- package/src/server/plugins/engine/types.ts +10 -1
- package/src/server/plugins/engine/views/components/html.html +1 -1
- package/src/server/plugins/engine/views/components/markdown.html +5 -0
- package/src/server/plugins/engine/views/confirmation.html +1 -1
- package/src/server/plugins/engine/views/file-upload.html +1 -1
- package/src/server/plugins/engine/views/index.html +1 -1
- package/src/server/plugins/engine/views/item-delete.html +1 -1
- package/src/server/plugins/engine/views/repeat-list-summary.html +1 -1
- package/src/server/plugins/engine/views/summary.html +8 -2
- package/src/server/plugins/errorPages.ts +4 -26
- package/src/server/plugins/nunjucks/context.js +44 -34
- package/src/server/plugins/nunjucks/context.test.js +24 -27
- package/src/server/plugins/nunjucks/enviroment.test.js +9 -3
- package/src/server/plugins/nunjucks/types.js +3 -4
- package/src/server/routes/index.ts +0 -1
- package/src/server/utils/type-utils.ts +15 -0
- package/src/typings/hapi/index.d.ts +3 -9
- package/src/typings/joi/index.d.ts +8 -0
- package/.server/common/cookies.js +0 -55
- package/.server/common/cookies.js.map +0 -1
- package/.server/common/cookies.test.js +0 -15
- package/.server/common/cookies.test.js.map +0 -1
- package/.server/common/types.js +0 -6
- package/.server/common/types.js.map +0 -1
- package/.server/server/forms/README.md +0 -10
- package/.server/server/forms/report-a-terrorist.json +0 -270
- package/.server/server/forms/runner-components-test.json +0 -365
- package/.server/server/forms/test.json +0 -581
- package/.server/server/forms/test.yaml +0 -363
- package/.server/server/plugins/blankie.js +0 -29
- package/.server/server/plugins/blankie.js.map +0 -1
- package/.server/server/plugins/engine/services/formsService.test.js +0 -71
- package/.server/server/plugins/engine/services/formsService.test.js.map +0 -1
- package/.server/server/plugins/engine/views/layout.html +0 -199
- package/.server/server/plugins/router.js +0 -169
- package/.server/server/plugins/router.js.map +0 -1
- package/.server/server/routes/health.js +0 -15
- package/.server/server/routes/health.js.map +0 -1
- package/.server/server/routes/health.test.js +0 -32
- package/.server/server/routes/health.test.js.map +0 -1
- package/.server/server/utils/file-form-service.test.js +0 -52
- package/.server/server/utils/file-form-service.test.js.map +0 -1
- package/.server/server/views/404.html +0 -16
- package/.server/server/views/500.html +0 -19
- package/.server/server/views/help/accessibility-statement.html +0 -58
- package/.server/server/views/help/cookie-preferences.html +0 -57
- package/.server/server/views/help/cookies.html +0 -71
- package/.server/server/views/help/get-support.html +0 -37
- package/.server/server/views/help/privacy-notice.html +0 -68
- package/.server/server/views/help/terms-and-conditions.html +0 -83
- package/src/common/cookies.js +0 -58
- package/src/common/cookies.test.js +0 -23
- package/src/common/types.js +0 -5
- package/src/server/forms/README.md +0 -10
- package/src/server/forms/report-a-terrorist.json +0 -270
- package/src/server/forms/runner-components-test.json +0 -365
- package/src/server/forms/test.json +0 -581
- package/src/server/forms/test.yaml +0 -363
- package/src/server/plugins/blankie.test.ts +0 -73
- package/src/server/plugins/blankie.ts +0 -48
- package/src/server/plugins/engine/services/formsService.test.js +0 -90
- package/src/server/plugins/engine/views/layout.html +0 -199
- package/src/server/plugins/router.ts +0 -201
- package/src/server/routes/health.js +0 -13
- package/src/server/routes/health.test.js +0 -35
- package/src/server/routes/index.test.ts +0 -125
- package/src/server/utils/file-form-service.test.js +0 -79
- package/src/server/views/404.html +0 -16
- package/src/server/views/500.html +0 -19
- package/src/server/views/help/accessibility-statement.html +0 -58
- package/src/server/views/help/cookie-preferences.html +0 -57
- package/src/server/views/help/cookies.html +0 -71
- package/src/server/views/help/get-support.html +0 -37
- package/src/server/views/help/privacy-notice.html +0 -68
- package/src/server/views/help/terms-and-conditions.html +0 -83
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
{% extends "layout.html" %}
|
|
2
|
-
|
|
3
|
-
{% set pageTitle = config.serviceName + " privacy notice" %}
|
|
4
|
-
|
|
5
|
-
{% block content %}
|
|
6
|
-
<div class="govuk-grid-row">
|
|
7
|
-
<div class="govuk-grid-column-two-thirds">
|
|
8
|
-
<h1 class="govuk-heading-l">{{ config.serviceName }} privacy notice</h1>
|
|
9
|
-
<p class="govuk-body">The {{ form.title }} form was created using ‘{{ config.serviceName }}’. This service is owned and operated by the Department for Environment, Food & Rural Affairs (Defra).</p>
|
|
10
|
-
|
|
11
|
-
<h2 class="govuk-heading-m">Who collects your personal data</h2>
|
|
12
|
-
<p class="govuk-body">The organisation that created the {{ form.title }} form using ‘{{ config.serviceName }}’ is the data controller of personal data they collect. If the data controller is outside the Defra legal entity, then Defra is the data processor.</p>
|
|
13
|
-
<p class="govuk-body">Read the <a href="{{ form.privacyNoticeUrl }}" class="govuk-link">specific privacy notice for the {{ form.title }} form</a>.</p>
|
|
14
|
-
<p class="govuk-body">Defra also collects some data as a data controller. This privacy notice explains what personal data Defra collects and processes as a data controller through forms made with ‘{{ config.serviceName }}’.</p>
|
|
15
|
-
<p class="govuk-body">If you need further information about how Defra uses your personal data, email <a href="mailto:defraforms@defra.gov.uk" class="govuk-link">defraforms@defra.gov.uk</a>.</p>
|
|
16
|
-
<p class="govuk-body">If you want information and your associated rights you can email: <a href="mailto:data.protection@defra.gov.uk" class="govuk-link">data.protection@defra.gov.uk</a>.</p>
|
|
17
|
-
<p class="govuk-body">The data protection officer for Defra is responsible for checking that Defra complies with legislation. You can contact them at <a href="mailto:DefraGroupDataProtectionOfficer@defra.gov.uk" class="govuk-link">Defra<wbr>Group<wbr>Data<wbr>Protection<wbr>Officer@defra.gov.uk</a>.</p>
|
|
18
|
-
|
|
19
|
-
<h2 class="govuk-heading-m">Data we collect from you and what we do with it</h2>
|
|
20
|
-
<p class="govuk-body">If you give your consent, we use Google Analytics cookies to collect information about how you use ‘{{ config.serviceName }}’. Read the <a href="https://support.google.com/analytics/topic/2919631" class="govuk-link">data privacy and security policy for Google Analytics</a>.</p>
|
|
21
|
-
<p class="govuk-body">Google Analytics processes information about:</p>
|
|
22
|
-
<ul class="govuk-list govuk-list--bullet">
|
|
23
|
-
<li>your IP address</li>
|
|
24
|
-
<li>the pages you visit on ‘{{ config.serviceName }}’</li>
|
|
25
|
-
<li>how long you spend on each ‘{{ config.serviceName }}’ page</li>
|
|
26
|
-
<li>how you got to the site</li>
|
|
27
|
-
<li>what you select while you’re visiting the site</li>
|
|
28
|
-
</ul>
|
|
29
|
-
<p class="govuk-body">Defra will make sure you cannot be directly identified by Google Analytics data. We do this by using <a href="https://support.google.com/analytics/answer/2763052" class="govuk-link">Google Analytics’ IP address anonymisation</a> feature and by removing any other personal data from the titles or URLs of the pages you visit.</p>
|
|
30
|
-
<p class="govuk-body">Defra will not combine analytics information with other data sets in a way that would directly identify who you are.</p>
|
|
31
|
-
<p class="govuk-body">We use system logs to collect information about the usage of forms. The logs are stored in Amazon Web Services based in London.</p>
|
|
32
|
-
<p class="govuk-body">We use the system logs and Google Analytics data to create anonymised reports about the performance of forms that use ‘{{ config.serviceName }}’. We use this data to improve forms, for example, if we discover a high number of drops offs at a certain point within a form. We may share this information with the data controller of the form.</p>
|
|
33
|
-
<p class="govuk-body">If you email us feedback about a form that uses ‘{{ config.serviceName }}’, we’ll send your email address and any other personal information you choose to include in your email to the data controller for review. The data controller may use your personal information to reply to your query to update a form based on your feedback where it is appropriate.</p>
|
|
34
|
-
|
|
35
|
-
<h2 class="govuk-heading-m">Lawful basis for processing your personal data</h2>
|
|
36
|
-
<p class="govuk-body">The lawful basis for processing your personal data is your consent.</p>
|
|
37
|
-
|
|
38
|
-
<h2 class="govuk-heading-m">Cookies</h2>
|
|
39
|
-
<p class="govuk-body">We use cookies to make this form work. Read about the <a href="/help/cookies" class="govuk-link">cookies we use to make this form work</a>.</p>
|
|
40
|
-
|
|
41
|
-
<h2 class="govuk-heading-m">How long we keep your data</h2>
|
|
42
|
-
<p class="govuk-body">Defra will keep tracking cookies on your device for up to 1 year.</p>
|
|
43
|
-
|
|
44
|
-
<h2 class="govuk-heading-m">Transfer of your personal data outside of the UK</h2>
|
|
45
|
-
<p class="govuk-body">We will only transfer your personal data to another country that is deemed adequate for data protection purposes.</p>
|
|
46
|
-
|
|
47
|
-
<h2 class="govuk-heading-m">What are your rights</h2>
|
|
48
|
-
<p class="govuk-body">Based on the lawful processing above, your individual rights are:</p>
|
|
49
|
-
<ul class="govuk-list govuk-list--bullet">
|
|
50
|
-
<li>the right to be informed</li>
|
|
51
|
-
<li>the right of access</li>
|
|
52
|
-
<li>the right to rectification</li>
|
|
53
|
-
<li>the right to erasure</li>
|
|
54
|
-
<li>the right to restrict processing</li>
|
|
55
|
-
<li>the right to data portability</li>
|
|
56
|
-
<li>rights in relation to automated decision making and profiling</li>
|
|
57
|
-
</ul>
|
|
58
|
-
<p class="govuk-body">Get more information about your <a href="https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/individual-rights/" class="govuk-link">individual rights</a> under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA 2018).</p>
|
|
59
|
-
|
|
60
|
-
<h2 class="govuk-heading-m">Complaints</h2>
|
|
61
|
-
<p class="govuk-body">You have the right to <a href="https://ico.org.uk/make-a-complaint/" class="govuk-link">make a complaint</a> to the Information Commissioner’s Office at any time.</p>
|
|
62
|
-
|
|
63
|
-
<h2 class="govuk-heading-m">Personal information charter</h2>
|
|
64
|
-
<p class="govuk-body">Our <a href="https://www.gov.uk/government/organisations/department-for-environment-food-rural-affairs/about/personal-information-charter" class="govuk-link">personal information charter</a> explains more about your rights over your personal data.</p>
|
|
65
|
-
<p class="govuk-body">Last updated: 24 December 2024</p>
|
|
66
|
-
</div>
|
|
67
|
-
</div>
|
|
68
|
-
{% endblock %}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
{% extends 'layout.html' %}
|
|
2
|
-
|
|
3
|
-
{% block content %}
|
|
4
|
-
<div class="govuk-grid-row">
|
|
5
|
-
<div class="govuk-grid-column-two-thirds">
|
|
6
|
-
<h1 class="govuk-heading-l">Terms and conditions</h1>
|
|
7
|
-
<p class="govuk-body">By using this digital service you agree to our <a rel=noopener
|
|
8
|
-
href="https://www.gov.uk/government/publications/foreign-and-commonwealth-office-privacy-notice-consular-services-in-the-uk-and-at-british-embassies-high-commissions-and-consulates-overseas/foreign-and-commonwealth-office-privacy-notice-consular-services-in-the-uk-and-missions-overseas">
|
|
9
|
-
privacy policy</a> and to these terms and conditions. Read them carefully.
|
|
10
|
-
</p>
|
|
11
|
-
<h2 class="govuk-heading-l">General</h2>
|
|
12
|
-
<p class="govuk-body">These terms and conditions affect your rights and liabilities under
|
|
13
|
-
the law. They govern your use of, and relationship with, the service. They don’t apply to other services
|
|
14
|
-
provided by the Foreign & Commonwealth Office, or to any other department or service which is linked
|
|
15
|
-
to in this service.</p>
|
|
16
|
-
<p class="govuk-body">You agree to use this site only for lawful purposes, and in a
|
|
17
|
-
manner that does not infringe the rights of, or restrict or inhibit the use and enjoyment of, this site
|
|
18
|
-
by any third party.</p>
|
|
19
|
-
<p class="govuk-body">We may occasionally update these terms and conditions. This might happen if there’s a change in the law or to the way this service works. Check these terms and conditions regularly, as continued use of the service after a change has been made is your acceptance of the change. If you don't agree to the terms and conditions and </span><a
|
|
20
|
-
rel=noopener href="https://www.gov.uk/government/publications/foreign-and-commonwealth-office-privacy-notice-consular-services-in-the-uk-and-at-british-embassies-high-commissions-and-consulates-overseas/foreign-and-commonwealth-office-privacy-notice-consular-services-in-the-uk-and-missions-overseas">
|
|
21
|
-
privacy policy</a>, you should not use this service.</p>
|
|
22
|
-
<h2 class="govuk-heading-l">Applicable law</h2>
|
|
23
|
-
<p class="govuk-body">Your use of this service and any dispute arising from its use will
|
|
24
|
-
be governed by and construed in accordance with the laws of England and Wales, including but not limited
|
|
25
|
-
to the:</p>
|
|
26
|
-
<ul class="govuk-list">
|
|
27
|
-
<li>Computer Misuse Act 1990</li>
|
|
28
|
-
<li>Data Protection Act</li>
|
|
29
|
-
<li>Mental Capacity Act 2005</li>
|
|
30
|
-
</ul>
|
|
31
|
-
<h2 class="govuk-heading-l">How to use this service responsibly</h2>
|
|
32
|
-
<p class="govuk-body">You must provide us with enough information for us to assess the
|
|
33
|
-
case fairly and if appropriate to provide the service. We also need these details to provide information
|
|
34
|
-
about the appointment, including rescheduling and cancellation when necessary, so you must provide
|
|
35
|
-
accurate details where we can reliably contact you.</p>
|
|
36
|
-
<p class="govuk-body">When attending their appointment the person requiring an emergency
|
|
37
|
-
travel document will have to pass through Security checks. They should expect their belongings to be
|
|
38
|
-
checked, and will have to leave their mobile phone and other belongings with the Security Officer. Do
|
|
39
|
-
not bring laptops or other electronic devices. Arrive in advance of the appointment. If you need to
|
|
40
|
-
cancel or modify your booking, you will be able to do so by following the link in the confirmation
|
|
41
|
-
email.</p>
|
|
42
|
-
<p class="govuk-body">There are risks in using a shared computer, such as in an internet
|
|
43
|
-
café, to use this digital service. It’s your responsibility to be aware of these risks and to avoid
|
|
44
|
-
using any computer which may leave your personal information accessible to others. You are responsible
|
|
45
|
-
if you choose to leave a computer unprotected while in the process of using the service.</p>
|
|
46
|
-
<p class="govuk-body">We make every effort to check and test this service whenever we
|
|
47
|
-
amend or update it. However, you must take your own precautions to ensure that the way you access this
|
|
48
|
-
service does not expose you to the risk of viruses, malicious computer code or other forms of
|
|
49
|
-
interference which may damage your own computer system.</p>
|
|
50
|
-
<p class="govuk-body">You must not misuse our service by knowingly introducing viruses,
|
|
51
|
-
trojans, worms, logic bombs or other material which is malicious or technologically harmful. You must
|
|
52
|
-
not attempt to gain unauthorised access to our service, the system on which our service is stored or any
|
|
53
|
-
server, computer or database connected to our service. You must not attack our site via a
|
|
54
|
-
denial-of-service attack or a distributed denial-of-service attack.</p>
|
|
55
|
-
<h1 class="govuk-heading-l">Disclaimer</h1>
|
|
56
|
-
<p class="govuk-body">While we make every effort to keep this service up to date, we
|
|
57
|
-
don’t provide any guarantees, conditions or warranties as to the accuracy of the information on the
|
|
58
|
-
site.</p>
|
|
59
|
-
<p class="govuk-body">While Consular staff will give you as much advice as they can, it
|
|
60
|
-
is your responsibility to ensure that you are obtaining the correct service and that you bring all the
|
|
61
|
-
necessary documentation for the service. If you are unsure, you may wish to take legal advice before
|
|
62
|
-
booking the service </p>
|
|
63
|
-
<p class="govuk-body">Our consular fees are not refundable, and are subject to change without notice. Check the relevant <a
|
|
64
|
-
href="https://www.gov.uk/search?q=consular+fees" target="_blank" rel="noopener noreferrer">consular fees list</a> for the latest information.</p>
|
|
65
|
-
<p class="govuk-body">We don’t accept liability for loss or damage incurred by users of
|
|
66
|
-
this service, whether direct, indirect or consequential, whether caused by tort, breach of contract or
|
|
67
|
-
otherwise. This includes loss of income or revenue, business, profits or contracts, anticipated savings,
|
|
68
|
-
data, goodwill, tangible property or wasted time in connection with this service or any websites linked
|
|
69
|
-
to it and any materials posted on it. This condition shall not prevent claims for loss of or damage to
|
|
70
|
-
your tangible property or any other claims for direct financial loss that are not excluded by any of the
|
|
71
|
-
categories set out above.</p>
|
|
72
|
-
<p class="govuk-body">This does not affect our liability for death or personal injury
|
|
73
|
-
arising from our negligence, nor our liability for fraudulent misrepresentation or misrepresentation as
|
|
74
|
-
to a fundamental matter, nor any other liability which cannot be excluded or limited under applicable
|
|
75
|
-
law. </p>
|
|
76
|
-
<h2 class="govuk-heading-l">Information provided by this service</h2>
|
|
77
|
-
<p class="govuk-body"> We work hard to ensure that information within this service is
|
|
78
|
-
accurate. However, we can’t guarantee the accuracy and completeness of any information at all times.
|
|
79
|
-
While we make every effort to ensure this service is accessible at all times, we are not liable if it is
|
|
80
|
-
unavailable for any period of time. </p>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
{% endblock %}
|
package/src/common/cookies.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
@type {CookieConsent}
|
|
3
|
-
*/
|
|
4
|
-
export const defaultConsent = {
|
|
5
|
-
analytics: null,
|
|
6
|
-
dismissed: false
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Parses the cookie consent policy
|
|
11
|
-
* @param {string} value
|
|
12
|
-
*/
|
|
13
|
-
export function parseCookieConsent(value) {
|
|
14
|
-
/** @type {CookieConsent} */
|
|
15
|
-
let cookieConsent
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
const encodedValue = decodeURIComponent(value)
|
|
19
|
-
|
|
20
|
-
// eslint-disable-next-line -- Allow JSON type 'any'
|
|
21
|
-
const decodedValue = JSON.parse(encodedValue)
|
|
22
|
-
|
|
23
|
-
if (isValidConsent(decodedValue)) {
|
|
24
|
-
cookieConsent = decodedValue
|
|
25
|
-
} else {
|
|
26
|
-
cookieConsent = defaultConsent
|
|
27
|
-
}
|
|
28
|
-
} catch {
|
|
29
|
-
cookieConsent = defaultConsent
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return cookieConsent
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Serialises the cookie consent policy
|
|
37
|
-
* @param {CookieConsent} consent
|
|
38
|
-
* @returns {string} cookie value
|
|
39
|
-
*/
|
|
40
|
-
export function serialiseCookieConsent(consent) {
|
|
41
|
-
return encodeURIComponent(JSON.stringify(consent))
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* @param {unknown} consent
|
|
46
|
-
* @returns {consent is CookieConsent}
|
|
47
|
-
*/
|
|
48
|
-
function isValidConsent(consent) {
|
|
49
|
-
if (consent === null || Array.isArray(consent)) {
|
|
50
|
-
return false
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return typeof consent === 'object' && 'analytics' in consent
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* @import {CookieConsent} from '~/src/common/types.js'
|
|
58
|
-
*/
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { parseCookieConsent } from '~/src/common/cookies.js'
|
|
2
|
-
|
|
3
|
-
describe('cookies', () => {
|
|
4
|
-
it('parses a valid policy', () => {
|
|
5
|
-
expect(parseCookieConsent('{"analytics":true}')).toEqual({
|
|
6
|
-
analytics: true
|
|
7
|
-
})
|
|
8
|
-
})
|
|
9
|
-
|
|
10
|
-
it.each([
|
|
11
|
-
"['not', 'an', 'object']",
|
|
12
|
-
'{{ not: "an object" }}',
|
|
13
|
-
'{ additional: AAA }',
|
|
14
|
-
'{ marketing: 100 }',
|
|
15
|
-
'',
|
|
16
|
-
'null'
|
|
17
|
-
])('converts a malformed policy to the default', (value) => {
|
|
18
|
-
expect(parseCookieConsent(value)).toEqual({
|
|
19
|
-
analytics: null,
|
|
20
|
-
dismissed: false
|
|
21
|
-
})
|
|
22
|
-
})
|
|
23
|
-
})
|
package/src/common/types.js
DELETED
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"startPage": "/do-you-have-a-link-to-the-evidence",
|
|
3
|
-
"pages": [
|
|
4
|
-
{
|
|
5
|
-
"title": "Do you have a link to the evidence?",
|
|
6
|
-
"path": "/do-you-have-a-link-to-the-evidence",
|
|
7
|
-
"components": [
|
|
8
|
-
{
|
|
9
|
-
"name": "UjidZI",
|
|
10
|
-
"title": "Html",
|
|
11
|
-
"options": {},
|
|
12
|
-
"type": "Html",
|
|
13
|
-
"content": "<p class=\"govuk-body\">It’s helpful if you can send us links to the relevant pages, or posts if it was posted on social media.</p>",
|
|
14
|
-
"schema": {}
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"name": "rfUYC",
|
|
18
|
-
"options": {},
|
|
19
|
-
"type": "Details",
|
|
20
|
-
"title": "Help me find the link",
|
|
21
|
-
"content": "If you’re on a website, the link appears in the bar at the top of the page. An example of a link is, www.gov.uk/page/1234/content#.",
|
|
22
|
-
"schema": {}
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"type": "RadiosField",
|
|
26
|
-
"title": "Do you have a link to the material?",
|
|
27
|
-
"options": {},
|
|
28
|
-
"name": "doyouhavealink",
|
|
29
|
-
"schema": {},
|
|
30
|
-
"list": "HTbt4V"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
33
|
-
"next": [
|
|
34
|
-
{
|
|
35
|
-
"path": "/do-you-have-any-evidence"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"path": "/yes-i-have-a-link-to-the-material",
|
|
39
|
-
"condition": "b-NGgWvGISkJJLuzsJIjv"
|
|
40
|
-
}
|
|
41
|
-
],
|
|
42
|
-
"section": "PMXq1s"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"path": "/do-you-have-any-evidence",
|
|
46
|
-
"title": "Do you have any evidence?",
|
|
47
|
-
"components": [
|
|
48
|
-
{
|
|
49
|
-
"name": "OQrrkG",
|
|
50
|
-
"title": "Html",
|
|
51
|
-
"options": {},
|
|
52
|
-
"type": "Html",
|
|
53
|
-
"content": "<p class=\"govuk-body\">This could be an image or video, for example. Evidence is helpful should the material be deleted before we can find it.It’s safe to save evidence to your device for the purpose of reporting it to us. We recommend deleting it afterwards.</p>",
|
|
54
|
-
"schema": {}
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"name": "ajdOpV",
|
|
58
|
-
"options": {},
|
|
59
|
-
"type": "Details",
|
|
60
|
-
"title": "Help me take a screenshot",
|
|
61
|
-
"content": "Try this:Press the Shift key (⇧), command (or Cmd), and 3The screenshot will be saved to your DesktopYou can now upload it to the formTry this:Press the Ctrl key and the switch window keyThe screenshot will be saved to your DownloadsYou can now upload it to the formIf that doesn’t work, try pressing Ctrl and F5.When viewing the material:Press the Prt Scr key (or similar) to take a copy of your screenPaste the image into Microsoft Paint or a similar applicationSave the file to your computerUpload the file to the formIf that doesn’t work, you may need to search for how to take screenshots on your particular computer model.",
|
|
62
|
-
"schema": {}
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"name": "LUBRMD",
|
|
66
|
-
"options": {},
|
|
67
|
-
"type": "RadiosField",
|
|
68
|
-
"title": "Do you have any evidence?",
|
|
69
|
-
"schema": {},
|
|
70
|
-
"list": "mdmRq9"
|
|
71
|
-
}
|
|
72
|
-
],
|
|
73
|
-
"next": [
|
|
74
|
-
{
|
|
75
|
-
"path": "/is-there-anything-else-you-can-tell-us"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"path": "/yes-i-have-evidence",
|
|
79
|
-
"condition": "On5IOaSRDSyLs1G7-Dmdy"
|
|
80
|
-
}
|
|
81
|
-
],
|
|
82
|
-
"section": "PMXq1s"
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
"title": "summary",
|
|
86
|
-
"path": "/summary",
|
|
87
|
-
"controller": "SummaryPageController",
|
|
88
|
-
"components": []
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
"path": "/is-there-anything-else-you-can-tell-us",
|
|
92
|
-
"title": "Is there anything else you can tell us?",
|
|
93
|
-
"components": [
|
|
94
|
-
{
|
|
95
|
-
"name": "HETMBo",
|
|
96
|
-
"title": "Html",
|
|
97
|
-
"options": {},
|
|
98
|
-
"type": "Html",
|
|
99
|
-
"content": "<p class=\"govuk-body\">Details may include:who shared the materialwhen it was shareda description, if you haven’t provided a link or evidence</p>",
|
|
100
|
-
"schema": {}
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"name": "evZxIJ",
|
|
104
|
-
"options": {
|
|
105
|
-
"required": false
|
|
106
|
-
},
|
|
107
|
-
"type": "MultilineTextField",
|
|
108
|
-
"title": "Additional Info",
|
|
109
|
-
"schema": {}
|
|
110
|
-
}
|
|
111
|
-
],
|
|
112
|
-
"next": [
|
|
113
|
-
{
|
|
114
|
-
"path": "/summary"
|
|
115
|
-
}
|
|
116
|
-
],
|
|
117
|
-
"section": "PMXq1s"
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"path": "/yes-i-have-a-link-to-the-material",
|
|
121
|
-
"title": "Yes I have a link to the material",
|
|
122
|
-
"components": [
|
|
123
|
-
{
|
|
124
|
-
"type": "MultilineTextField",
|
|
125
|
-
"title": "Link to the material",
|
|
126
|
-
"hint": "Please put in the link to the material here",
|
|
127
|
-
"name": "blarGGH",
|
|
128
|
-
"options": {},
|
|
129
|
-
"schema": {}
|
|
130
|
-
}
|
|
131
|
-
],
|
|
132
|
-
"next": [
|
|
133
|
-
{
|
|
134
|
-
"path": "/do-you-have-any-evidence"
|
|
135
|
-
}
|
|
136
|
-
],
|
|
137
|
-
"section": "PMXq1s"
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"path": "/yes-i-have-evidence",
|
|
141
|
-
"title": "Yes I have evidence",
|
|
142
|
-
"components": [
|
|
143
|
-
{
|
|
144
|
-
"name": "koExae",
|
|
145
|
-
"options": {
|
|
146
|
-
"required": false
|
|
147
|
-
},
|
|
148
|
-
"type": "MultilineTextField",
|
|
149
|
-
"title": "Evidence",
|
|
150
|
-
"hint": "Please enter your evidence here",
|
|
151
|
-
"schema": {}
|
|
152
|
-
}
|
|
153
|
-
],
|
|
154
|
-
"next": [
|
|
155
|
-
{
|
|
156
|
-
"path": "/is-there-anything-else-you-can-tell-us"
|
|
157
|
-
}
|
|
158
|
-
],
|
|
159
|
-
"section": "PMXq1s"
|
|
160
|
-
}
|
|
161
|
-
],
|
|
162
|
-
"lists": [
|
|
163
|
-
{
|
|
164
|
-
"title": "linktomateriallist",
|
|
165
|
-
"name": "HTbt4V",
|
|
166
|
-
"type": "string",
|
|
167
|
-
"items": [
|
|
168
|
-
{
|
|
169
|
-
"text": "Yes, I do have a link",
|
|
170
|
-
"value": "yes"
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
"text": "No, I don't have a link",
|
|
174
|
-
"value": "no"
|
|
175
|
-
}
|
|
176
|
-
]
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
"title": "evidencelist",
|
|
180
|
-
"name": "mdmRq9",
|
|
181
|
-
"type": "string",
|
|
182
|
-
"items": [
|
|
183
|
-
{
|
|
184
|
-
"text": "Yes, I have evidence",
|
|
185
|
-
"value": "yes"
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
"text": "No, I don't have evidence",
|
|
189
|
-
"value": "no"
|
|
190
|
-
}
|
|
191
|
-
]
|
|
192
|
-
}
|
|
193
|
-
],
|
|
194
|
-
"sections": [
|
|
195
|
-
{
|
|
196
|
-
"name": "PMXq1s",
|
|
197
|
-
"title": "Evidence"
|
|
198
|
-
}
|
|
199
|
-
],
|
|
200
|
-
"phaseBanner": {},
|
|
201
|
-
"metadata": {},
|
|
202
|
-
"conditions": [
|
|
203
|
-
{
|
|
204
|
-
"name": "b-NGgWvGISkJJLuzsJIjv",
|
|
205
|
-
"displayName": "hasLink",
|
|
206
|
-
"value": {
|
|
207
|
-
"name": "hasLink",
|
|
208
|
-
"conditions": [
|
|
209
|
-
{
|
|
210
|
-
"field": {
|
|
211
|
-
"name": "PMXq1s.doyouhavealink",
|
|
212
|
-
"type": "RadiosField",
|
|
213
|
-
"display": "Do you have a link to the material? in PMXq1s"
|
|
214
|
-
},
|
|
215
|
-
"operator": "is",
|
|
216
|
-
"value": {
|
|
217
|
-
"type": "Value",
|
|
218
|
-
"value": "yes",
|
|
219
|
-
"display": "Yes, I do have a link"
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
]
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
"name": "xY51EDbc4lPr6kHZl1umG",
|
|
227
|
-
"displayName": "noEvidence",
|
|
228
|
-
"value": {
|
|
229
|
-
"name": "noEvidence",
|
|
230
|
-
"conditions": [
|
|
231
|
-
{
|
|
232
|
-
"field": {
|
|
233
|
-
"name": "PMXq1s.LUBRMD",
|
|
234
|
-
"type": "RadiosField",
|
|
235
|
-
"display": "Do you have any evidence? in PMXq1s"
|
|
236
|
-
},
|
|
237
|
-
"operator": "is",
|
|
238
|
-
"value": {
|
|
239
|
-
"type": "Value",
|
|
240
|
-
"value": "no",
|
|
241
|
-
"display": "No, I don't have evidence"
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
]
|
|
245
|
-
}
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
"name": "On5IOaSRDSyLs1G7-Dmdy",
|
|
249
|
-
"displayName": "hasEvidence",
|
|
250
|
-
"value": {
|
|
251
|
-
"name": "hasEvidence",
|
|
252
|
-
"conditions": [
|
|
253
|
-
{
|
|
254
|
-
"field": {
|
|
255
|
-
"name": "PMXq1s.LUBRMD",
|
|
256
|
-
"type": "RadiosField",
|
|
257
|
-
"display": "Do you have any evidence? in PMXq1s"
|
|
258
|
-
},
|
|
259
|
-
"operator": "is",
|
|
260
|
-
"value": {
|
|
261
|
-
"type": "Value",
|
|
262
|
-
"value": "yes",
|
|
263
|
-
"display": "Yes, I have evidence"
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
]
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
]
|
|
270
|
-
}
|